diff --git a/coopstarter_data/migrations/0019_auto_20201130_1805.py b/coopstarter_data/migrations/0019_auto_20201130_1805.py
new file mode 100644
index 0000000000000000000000000000000000000000..4997ee4f5ace4c73ac03737f83f14b282b89f2d4
--- /dev/null
+++ b/coopstarter_data/migrations/0019_auto_20201130_1805.py
@@ -0,0 +1,226 @@
+# Generated by Django 2.2 on 2020-11-30 18:05
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('coopstarter_data', '0019_auto_20201130_1234'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='brokenlink',
+            name='resource',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='brokenlink_resource', to='coopstarter_data.Resource'),
+        ),
+        migrations.AlterField(
+            model_name='brokenlink',
+            name='submitter',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='brokenlink_submitter', to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AlterField(
+            model_name='contributor',
+            name='country',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='contributors', to='coopstarter_data.Country'),
+        ),
+        migrations.AlterField(
+            model_name='contributor',
+            name='organisation',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='contributors', to='coopstarter_data.Organisation'),
+        ),
+        migrations.AlterField(
+            model_name='contributor',
+            name='user',
+            field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='contributor_profile', to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AlterField(
+            model_name='country',
+            name='code',
+            field=models.CharField(blank=True, max_length=2, null=True, verbose_name='ISO Code'),
+        ),
+        migrations.AlterField(
+            model_name='country',
+            name='name',
+            field=models.CharField(blank=True, max_length=64, null=True, verbose_name='Country name'),
+        ),
+        migrations.AlterField(
+            model_name='field',
+            name='name',
+            field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Title'),
+        ),
+        migrations.AlterField(
+            model_name='format',
+            name='name',
+            field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Title'),
+        ),
+        migrations.AlterField(
+            model_name='interfacelanguage',
+            name='code',
+            field=models.CharField(blank=True, max_length=2, null=True, verbose_name='ISO Code'),
+        ),
+        migrations.AlterField(
+            model_name='interfacelanguage',
+            name='name',
+            field=models.CharField(blank=True, max_length=64, null=True, verbose_name='Language name'),
+        ),
+        migrations.AlterField(
+            model_name='language',
+            name='code',
+            field=models.CharField(blank=True, max_length=2, null=True, verbose_name='ISO Code'),
+        ),
+        migrations.AlterField(
+            model_name='language',
+            name='name',
+            field=models.CharField(blank=True, max_length=64, null=True, verbose_name='Language name'),
+        ),
+        migrations.AlterField(
+            model_name='learningoutcome',
+            name='name',
+            field=models.CharField(blank=True, max_length=256, null=True, verbose_name='Learning outcome'),
+        ),
+        migrations.AlterField(
+            model_name='organisation',
+            name='name',
+            field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Name'),
+        ),
+        migrations.AlterField(
+            model_name='organisation',
+            name='website',
+            field=models.CharField(blank=True, max_length=4096, null=True, verbose_name='Website'),
+        ),
+        migrations.AlterField(
+            model_name='request',
+            name='country',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='coopstarter_data.Country'),
+        ),
+        migrations.AlterField(
+            model_name='request',
+            name='created_on',
+            field=models.DateTimeField(default=django.utils.timezone.now, null=True),
+        ),
+        migrations.AlterField(
+            model_name='request',
+            name='description',
+            field=models.TextField(blank=True, null=True, verbose_name='Description'),
+        ),
+        migrations.AlterField(
+            model_name='request',
+            name='language',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='coopstarter_data.Language', verbose_name='Language'),
+        ),
+        migrations.AlterField(
+            model_name='request',
+            name='name',
+            field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Title'),
+        ),
+        migrations.AlterField(
+            model_name='request',
+            name='organisation',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='requests', to='coopstarter_data.Organisation'),
+        ),
+        migrations.AlterField(
+            model_name='request',
+            name='reviewer',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='reviewed_requests', to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AlterField(
+            model_name='request',
+            name='skills',
+            field=models.TextField(blank=True, null=True, verbose_name='Learning outcomes/skills'),
+        ),
+        migrations.AlterField(
+            model_name='request',
+            name='submitter',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='requests', to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AlterField(
+            model_name='resource',
+            name='country',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='coopstarter_data.Country'),
+        ),
+        migrations.AlterField(
+            model_name='resource',
+            name='format',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='resources', to='coopstarter_data.Format'),
+        ),
+        migrations.AlterField(
+            model_name='resource',
+            name='name',
+            field=models.CharField(blank=True, max_length=256, null=True, verbose_name='Title'),
+        ),
+        migrations.AlterField(
+            model_name='resource',
+            name='resource_author',
+            field=models.CharField(blank=True, max_length=256, null=True, verbose_name='Author'),
+        ),
+        migrations.AlterField(
+            model_name='resource',
+            name='review',
+            field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='resource', to='coopstarter_data.Review', verbose_name='Associated review'),
+        ),
+        migrations.AlterField(
+            model_name='resource',
+            name='sharing',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='resources', to='coopstarter_data.SharingCriteria', verbose_name='Sharing profile'),
+        ),
+        migrations.AlterField(
+            model_name='resource',
+            name='submitter',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='resources', to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AlterField(
+            model_name='resource',
+            name='target',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='coopstarter_data.Target', verbose_name='Target audience'),
+        ),
+        migrations.AlterField(
+            model_name='resource',
+            name='uri',
+            field=models.CharField(blank=True, max_length=4086, null=True, verbose_name='Location/weblink'),
+        ),
+        migrations.AlterField(
+            model_name='review',
+            name='comment',
+            field=models.TextField(blank=True, null=True, verbose_name='Comment'),
+        ),
+        migrations.AlterField(
+            model_name='review',
+            name='reviewer',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='reviews', to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AlterField(
+            model_name='searcher',
+            name='organisation',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='searchers', to='coopstarter_data.Organisation'),
+        ),
+        migrations.AlterField(
+            model_name='searcher',
+            name='user',
+            field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='searcher_profile', to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AlterField(
+            model_name='sharingcriteria',
+            name='name',
+            field=models.CharField(blank=True, max_length=128, null=True, verbose_name='name'),
+        ),
+        migrations.AlterField(
+            model_name='step',
+            name='name',
+            field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Name'),
+        ),
+        migrations.AlterField(
+            model_name='target',
+            name='name',
+            field=models.CharField(blank=True, max_length=128, null=True, verbose_name='name'),
+        ),
+        migrations.AlterField(
+            model_name='type',
+            name='name',
+            field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Title'),
+        ),
+    ]
diff --git a/coopstarter_data/models.py b/coopstarter_data/models.py
index 7c197ee52dce891455e0535648176a0664d00935..b867aa8d0acabfb8d02a19a9c6b6a660dfe0d972 100644
--- a/coopstarter_data/models.py
+++ b/coopstarter_data/models.py
@@ -12,7 +12,7 @@ from django.template import loader
 from djangoldp_i18n.views import I18nLDPViewSet
 
 class LearningOutcome (Model) :
-    name = models.CharField(max_length=256, verbose_name="Learning outcome")
+    name = models.CharField(max_length=256, verbose_name="Learning outcome", null=True, blank=True)
     
     class Meta:
         rdf_type = 'coopstarter:skills'
@@ -23,8 +23,8 @@ class LearningOutcome (Model) :
         return self.name
 
 class InterfaceLanguage (Model):
-    code = models.CharField(max_length=2, verbose_name="ISO Code")
-    name = models.CharField(max_length=64, verbose_name="Language name")
+    code = models.CharField(max_length=2, verbose_name="ISO Code", null=True, blank=True)
+    name = models.CharField(max_length=64, verbose_name="Language name", null=True, blank=True)
     
     class Meta:
         rdf_type = 'coopstarter:interfacelanguage'
@@ -33,8 +33,8 @@ class InterfaceLanguage (Model):
         return self.name
 
 class Country (Model):
-    code = models.CharField(max_length=2, verbose_name="ISO Code")
-    name = models.CharField(max_length=64, verbose_name="Country name")
+    code = models.CharField(max_length=2, verbose_name="ISO Code", null=True, blank=True)
+    name = models.CharField(max_length=64, verbose_name="Country name", null=True, blank=True)
     
     class Meta:
         rdf_type = 'coopstarter:country'
@@ -43,8 +43,8 @@ class Country (Model):
         return self.name
 
 class Language (Model):
-    code = models.CharField(max_length=2, verbose_name="ISO Code")
-    name = models.CharField(max_length=64, verbose_name="Language name")
+    code = models.CharField(max_length=2, verbose_name="ISO Code", null=True, blank=True)
+    name = models.CharField(max_length=64, verbose_name="Language name", null=True, blank=True)
 
     class Meta:
         rdf_type = 'coopstarter:language'
@@ -53,8 +53,8 @@ class Language (Model):
         return self.name
 
 class Organisation (Model):
-    name = models.CharField(max_length=128, verbose_name="Name")
-    website = models.CharField(max_length=4096, verbose_name="Website")
+    name = models.CharField(max_length=128, verbose_name="Name", null=True, blank=True)
+    website = models.CharField(max_length=4096, verbose_name="Website", null=True, blank=True)
 
     class Meta:
         rdf_type = 'coopstarter:organisation'
@@ -63,7 +63,7 @@ class Organisation (Model):
         return self.name
 
 class Step (Model):
-    name = models.CharField(max_length=128, verbose_name="Name")
+    name = models.CharField(max_length=128, verbose_name="Name", null=True, blank=True)
     order = models.IntegerField(verbose_name="Order", blank=True, null=True, default=0)
     
     class Meta:
@@ -79,7 +79,7 @@ class Step (Model):
         return self.name
 
 class Format (Model):
-    name = models.CharField(max_length=128, verbose_name="Title")
+    name = models.CharField(max_length=128, verbose_name="Title", blank=True, null=True)
 
     class Meta:
         rdf_type = 'coopstarter:format'
@@ -90,7 +90,7 @@ class Format (Model):
         return self.name
 
 class Field (Model):
-    name = models.CharField(max_length=128, verbose_name="Title")
+    name = models.CharField(max_length=128, verbose_name="Title", null=True, blank=True)
 
     class Meta:
         rdf_type = 'coopstarter:field'
@@ -101,7 +101,7 @@ class Field (Model):
         return self.name
 
 class Type (Model):
-    name = models.CharField(max_length=128, verbose_name="Title")
+    name = models.CharField(max_length=128, verbose_name="Title", null=True, blank=True)
 
     class Meta:
         rdf_type = 'coopstarter:resourcetype'
@@ -112,7 +112,7 @@ class Type (Model):
         return self.name
 
 class Target (Model):
-    name = models.CharField(max_length=128, verbose_name="name")
+    name = models.CharField(max_length=128, verbose_name="name", blank=True, null=True)
     value = models.CharField(max_length=128, verbose_name="value", blank=True, null=True)
 
     class Meta:
@@ -124,7 +124,7 @@ class Target (Model):
         return self.name
 
 class SharingCriteria (Model):
-    name = models.CharField(max_length=128, verbose_name="name")
+    name = models.CharField(max_length=128, verbose_name="name", blank=True, null=True)
     value = models.CharField(max_length=128, verbose_name="value", blank=True, null=True)
 
     class Meta:
@@ -137,8 +137,9 @@ class SharingCriteria (Model):
 
 
 class Searcher(Model):
-    user = models.OneToOneField(settings.AUTH_USER_MODEL, related_name="searcher_profile", on_delete=models.DO_NOTHING)
-    organisation = models.ForeignKey(Organisation, null=True, on_delete=models.DO_NOTHING, related_name="searchers")
+    user = models.OneToOneField(settings.AUTH_USER_MODEL, related_name="searcher_profile", on_delete=models.CASCADE,
+                                null=True)
+    organisation = models.ForeignKey(Organisation, null=True, on_delete=models.CASCADE, related_name="searchers")
     
     class Meta:
         auto_author = 'user'
@@ -156,10 +157,11 @@ class Searcher(Model):
         return self.user.get_full_name()
 
 class Contributor(Model):
-    user = models.OneToOneField(settings.AUTH_USER_MODEL, related_name="contributor_profile", on_delete=models.DO_NOTHING)
+    user = models.OneToOneField(settings.AUTH_USER_MODEL, related_name="contributor_profile", on_delete=models.CASCADE,
+                                null=True)
     phone = models.CharField(max_length=25, null=True, blank=True, verbose_name='Phone number')
-    organisation = models.ForeignKey(Organisation, null=True, on_delete=models.DO_NOTHING, related_name="contributors")
-    country = models.ForeignKey(Country, null=True, related_name="contributors", on_delete=models.DO_NOTHING)
+    organisation = models.ForeignKey(Organisation, null=True, on_delete=models.SET_NULL, related_name="contributors")
+    country = models.ForeignKey(Country, null=True, related_name="contributors", on_delete=models.SET_NULL)
     languages = models.ManyToManyField(Language, blank=True)
 
     headline = models.CharField(max_length=256, blank=True, null=True, verbose_name='Headline or current position')
@@ -194,9 +196,9 @@ class Contributor(Model):
         return self.user.get_full_name()
 
 class Review (Model):
-    comment =  models.TextField(verbose_name="Comment", blank=True)
+    comment =  models.TextField(verbose_name="Comment", blank=True, null=True)
     status = models.CharField(max_length=32, choices=(('pending', 'Pending'), ('inappropriate', 'Inappropriate'), ('validated', 'Validated'), ('to_improve', 'Improvement required')), verbose_name="Resource status", blank=True, null=True)
-    reviewer = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.DO_NOTHING, related_name='reviews')
+    reviewer = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.SET_NULL, related_name='reviews')
 
     class Meta:
         owner_field = 'reviewer'
@@ -214,15 +216,15 @@ class Review (Model):
 
 class Resource (Model):
     # Mandatory Fields
-    name = models.CharField(max_length=256, verbose_name="Title")
+    name = models.CharField(max_length=256, verbose_name="Title", blank=True, null=True)
 
-    format = models.ForeignKey(Format, null=True, related_name='resources', on_delete=models.DO_NOTHING)
+    format = models.ForeignKey(Format, null=True, related_name='resources', on_delete=models.SET_NULL)
     publication_year = models.IntegerField(verbose_name="Publication Year", null=True, blank=True)
     languages = models.ManyToManyField(Language, blank=True, verbose_name="Languages", related_name='resources')
     fields = models.ManyToManyField(Field, blank=True, verbose_name="Fields", related_name='resources')
-    country = models.ForeignKey(Country, null=True, on_delete=models.DO_NOTHING)
-    uri = models.CharField(max_length=4086, verbose_name="Location/weblink")
-    resource_author = models.CharField(max_length=256, verbose_name="Author")
+    country = models.ForeignKey(Country, null=True, on_delete=models.SET_NULL)
+    uri = models.CharField(max_length=4086, verbose_name="Location/weblink", blank=True, null=True)
+    resource_author = models.CharField(max_length=256, verbose_name="Author", blank=True, null=True)
     skills = models.ManyToManyField(LearningOutcome, blank=True, verbose_name="Learning outcomes/skills", related_name='resources')
 
     # Complementary fields
@@ -231,13 +233,13 @@ class Resource (Model):
     preview_image = models.URLField(blank=True, null=True)
 
     # Classification Fields
-    target = models.ForeignKey(Target, verbose_name="Target audience", blank=True, null=True, on_delete=models.DO_NOTHING)
+    target = models.ForeignKey(Target, verbose_name="Target audience", blank=True, null=True, on_delete=models.SET_NULL)
     type = models.ManyToManyField(Type, blank=True, verbose_name="Type of content", related_name='resources')
-    sharing = models.ForeignKey(SharingCriteria, blank=True, null=True, verbose_name="Sharing profile", related_name='resources', on_delete=models.DO_NOTHING)
+    sharing = models.ForeignKey(SharingCriteria, blank=True, null=True, verbose_name="Sharing profile", related_name='resources', on_delete=models.SET_NULL)
     steps = models.ManyToManyField(Step, blank=True, related_name="resources")
 
     # Relations to other models
-    submitter = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.DO_NOTHING, related_name='resources')
+    submitter = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.SET_NULL, related_name='resources')
     related = models.ManyToManyField("self", blank=True)
     conversations = models.ManyToManyField(Conversation, blank=True, related_name='resources')
     likes = models.ManyToManyField(Like, blank=True, related_name='resources')
@@ -267,21 +269,21 @@ class Resource (Model):
 
 class Request (Model):
     # Mandatory Fields
-    name = models.CharField(max_length=128, verbose_name="Title")
-    description = models.TextField(verbose_name="Description")
+    name = models.CharField(max_length=128, verbose_name="Title", null=True, blank=True)
+    description = models.TextField(verbose_name="Description", null=True, blank=True)
     status = models.CharField(max_length=32, verbose_name="Status", choices=(('pending', 'Pending'), ('validated', 'Validated')), default="pending")
     
-    language = models.ForeignKey(Language, blank=True, verbose_name="Language", on_delete=models.DO_NOTHING)
+    language = models.ForeignKey(Language, blank=True, verbose_name="Language", on_delete=models.SET_NULL, null=True)
     fields = models.ManyToManyField(Field, blank=True)
-    country = models.ForeignKey(Country, null=True, on_delete=models.DO_NOTHING)
+    country = models.ForeignKey(Country, null=True, on_delete=models.SET_NULL)
 
-    organisation = models.ForeignKey(Organisation, on_delete=models.DO_NOTHING, related_name="requests")
-    skills = models.TextField(verbose_name="Learning outcomes/skills")
+    organisation = models.ForeignKey(Organisation, on_delete=models.SET_NULL, related_name="requests", null=True)
+    skills = models.TextField(verbose_name="Learning outcomes/skills", null=True, blank=True)
     
-    submitter = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.DO_NOTHING, related_name='requests')
-    reviewer = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.DO_NOTHING, related_name='reviewed_requests')
+    submitter = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.SET_NULL, related_name='requests')
+    reviewer = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.SET_NULL, related_name='reviewed_requests')
 
-    created_on = models.DateTimeField(default=timezone.now)
+    created_on = models.DateTimeField(default=timezone.now, null=True)
 
     class Meta:
         ordering = ['-created_on']
@@ -301,8 +303,9 @@ class Request (Model):
         return self.name
 
 class BrokenLink(Model):
-    submitter = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING, related_name="brokenlink_submitter")
-    resource = models.ForeignKey(Resource, null=True, on_delete=models.DO_NOTHING, related_name="brokenlink_resource")
+    submitter = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, related_name="brokenlink_submitter",
+                                  null=True, blank=True)
+    resource = models.ForeignKey(Resource, null=True, on_delete=models.SET_NULL, related_name="brokenlink_resource")
     
     class Meta:
         auto_author = 'submitter'
diff --git a/coopstarter_data/views.py b/coopstarter_data/views.py
index 1ad012173fb6c185d2f54a6961061dc7089eae2d..db3bc1f099951d2bbae289366eebae139b13dfc4 100644
--- a/coopstarter_data/views.py
+++ b/coopstarter_data/views.py
@@ -17,7 +17,7 @@ class ValidatedResourcesByStepViewSet(I18nLDPViewSet):
     # Additional filter criteria: , target__value=target
     return super().get_queryset(*args, **kwargs)\
           .filter(steps__in=step_id, review__status='validated')\
-          .exclude(submitter__username=self.request.user.username)
+          .exclude(is_backlink=True)
 
 class PendingResourcesViewSet(I18nLDPViewSet):
   model = Resource
@@ -27,4 +27,4 @@ class PendingResourcesViewSet(I18nLDPViewSet):
     # , language__in=self.request.user.contributor_profile.languages.all(), fields__in=self.request.user.contributor_profile.fields.all()
     return super().get_queryset(*args, **kwargs)\
           .filter(review__status='pending')\
-          .exclude(submitter__username=self.request.user.username)
\ No newline at end of file
+          .exclude(submitter__username=self.request.user.username, is_backlink=True)
\ No newline at end of file