diff --git a/projects/apps.py b/projects/apps.py
index e2ae2a40114e4a9486e34f0b7ba4d004754ef77e..54bd9da39b4ad413b29206ce721a36e4cf2b462b 100644
--- a/projects/apps.py
+++ b/projects/apps.py
@@ -4,3 +4,6 @@ from django.apps import AppConfig
 class ProjectsConfig(AppConfig):
     name = 'projects'
     verbose_name = 'Projets'
+
+    def ready(self):
+        from . import signals
diff --git a/projects/models.py b/projects/models.py
index a29e38be85b4af202ecdc4a1fa71cd130ddf3ab1..38b02fd813eb89bb2b5c43a7f897afbc4b4214e1 100644
--- a/projects/models.py
+++ b/projects/models.py
@@ -182,7 +182,7 @@ class Participation(models.Model):
 
     entry = models.OneToOneField(
         'dynamicforms.FormEntry',
-        on_delete=models.CASCADE,
+        on_delete=models.SET_NULL,
         null=True,
         related_name='project_participation',
         verbose_name='entrée',
diff --git a/projects/serializers.py b/projects/serializers.py
index 6f7033d73dd2cae83667df89f726628e8021b2ef..637eb1dee20afa1a4c00aabaf18b09e656537d19 100644
--- a/projects/serializers.py
+++ b/projects/serializers.py
@@ -55,7 +55,7 @@ class EditionListSerializer(serializers.HyperlinkedModelSerializer):
     """List serializer for Edition objects."""
 
     description = MarkdownField()
-    project = serializers.PrimaryKeyRelatedField(read_only=True)
+    project = serializers.StringRelatedField(read_only=True)
     organizers = serializers.SerializerMethodField()
     participations = serializers.SerializerMethodField()
     edition_form = EditionFormSerializer()
@@ -112,6 +112,8 @@ class ParticipationSerializer(serializers.ModelSerializer):
         with transaction.atomic():
             entry_data = validated_data['entry']
             entry = FormEntrySerializer().create(entry_data)
+            for answer in entry.answers.all():
+                print(answer)
 
             participation = Participation.objects.create(
                 user=validated_data['user'],
diff --git a/projects/signals.py b/projects/signals.py
new file mode 100644
index 0000000000000000000000000000000000000000..4b75cea9a475f587c0874e5a2b8582cb55b24124
--- /dev/null
+++ b/projects/signals.py
@@ -0,0 +1,20 @@
+"""Projects app signals."""
+
+import logging
+from django.db.models.signals import pre_delete
+from django.dispatch import receiver
+
+from .models import Participation
+
+
+logger = logging.getLogger('web.projects.signals')
+
+
+@receiver(pre_delete, sender=Participation)
+def delete_associated_form_entry(sender, instance: Participation,
+                                 *args, **kwargs):
+    """Delete the form entry associated to a participation being deleted."""
+    entry = instance.entry
+    if entry:
+        entry.delete()
+        logger.info('entry %s deleted', entry.id)
diff --git a/projects/views.py b/projects/views.py
index 6d9548be770e8084f49749c82a82c2c07fb3d2ca..716f394dd07160a58ff02993c93d53a489a21077 100644
--- a/projects/views.py
+++ b/projects/views.py
@@ -103,7 +103,7 @@ class EditionViewSet(viewsets.ReadOnlyModelViewSet):
                 "url": "http://localhost:8000/api/editions/1/",
                 "name": "",
                 "year": 2018,
-                "project": 1,
+                "project": "Oser la Prépa",
                 "description": "",
                 "organizers": 0,
                 "participations": 2,
@@ -245,7 +245,7 @@ class EditionViewSet(viewsets.ReadOnlyModelViewSet):
                     "url": "http://localhost:8000/api/editions/1/",
                     "name": "",
                     "year": 2018,
-                    "project": 1,
+                    "project": "Oser la Prépa",
                     "description": "",
                     "organizers": 0,
                     "participations": 3,
@@ -321,7 +321,7 @@ class ParticipationViewSet(mixins.CreateModelMixin,
         }
     """
 
-    queryset = Participation.objects.all()
+    queryset = Participation.objects.prefetch_related('edition').all()
     serializer_class = ParticipationSerializer
     permission_classes = (permissions.IsAuthenticated,)
     filter_backends = (DjangoFilterBackend,)