diff --git a/src/account/migrations/0002_profile_role.py b/src/account/migrations/0002_profile_role.py
new file mode 100644
index 0000000000000000000000000000000000000000..77f8eb7d1784cc27dcd4318538a706de4462fc80
--- /dev/null
+++ b/src/account/migrations/0002_profile_role.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.0.1 on 2019-01-05 18:22
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='profile',
+            name='role',
+            field=models.CharField(choices=[('Staff', 'Staff'), ('Applicant', 'Applicant'), ('Student', 'Student')], default='Applicant', max_length=10, unique=True),
+        ),
+    ]
diff --git a/src/account/models.py b/src/account/models.py
index 71b79f0c59102fe236def8d5459f6e3170e9f417..4ebe686bd56ce176040582981f9e7f83d8c8f400 100644
--- a/src/account/models.py
+++ b/src/account/models.py
@@ -19,6 +19,11 @@ class GroupChoice(models.Model):
 
 
 class Profile(models.Model):
+    ROLES = (
+        ('Staff', 'Staff'),
+        ('Applicant', 'Applicant'),
+        ('Student', 'Student'),
+    )
     join_date = models.DateTimeField(auto_now_add=True, editable=False)
     updated_at = models.DateTimeField(auto_now=True, editable=False)
     user = models.OneToOneField(User, related_name='profile', on_delete=models.CASCADE)
@@ -29,6 +34,7 @@ class Profile(models.Model):
     nick = models.CharField(max_length=15, blank=True, default='')
     signed = models.BooleanField(default=False, null=False)
     groups = models.ManyToManyField(GroupChoice, related_name='profiles')
+    role = models.CharField(max_length=10, choices=ROLES, default='Applicant', unique=True)
 
     @property
     def full_name(self):
diff --git a/src/account/serializers.py b/src/account/serializers.py
index 861e0314dbeb10f76183f4c81081ffbdbda4bd91..0cf14877821160a38115d33ceba4cd0155150d93 100644
--- a/src/account/serializers.py
+++ b/src/account/serializers.py
@@ -16,6 +16,7 @@ class ProfileSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = models.Profile
+        read_only_fields = ('role', )
         fields = (
             'id',
             'join_date',
@@ -27,7 +28,8 @@ class ProfileSerializer(serializers.ModelSerializer):
             'motivation_about',
             'motivation_profession',
             'motivation_exercise',
-            'full_name'
+            'full_name',
+            'role',
         )
 
     def validate(self, data):
diff --git a/src/homework/migrations/0002_auto_20190105_1922.py b/src/homework/migrations/0002_auto_20190105_1922.py
new file mode 100644
index 0000000000000000000000000000000000000000..9f4e7663b40f4c198a6145bfdb2a55a442e36f1f
--- /dev/null
+++ b/src/homework/migrations/0002_auto_20190105_1922.py
@@ -0,0 +1,19 @@
+# Generated by Django 2.0.1 on 2019-01-05 18:22
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('homework', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='solution',
+            name='created_by',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='student_solution', to='account.Profile'),
+        ),
+    ]
diff --git a/src/homework/models.py b/src/homework/models.py
index 9bebd8131438be78478709f98999f140be2e2b52..5585d8dd4e17871e57dd379bb8c3c5f7ad41ea02 100755
--- a/src/homework/models.py
+++ b/src/homework/models.py
@@ -20,7 +20,7 @@ class Task(models.Model):
 
 class Solution(models.Model):
     task = models.ForeignKey(Task, related_name='task_solution', on_delete=models.CASCADE)
-    created_by = models.ForeignKey(Profile, related_name='student_solution', on_delete=models.CASCADE)
+    created_by = models.ForeignKey(Profile, related_name='student_solution', on_delete=models.DO_NOTHING)
     created_at = models.DateTimeField(auto_now_add=True, editable=False)
     updated_at = models.DateTimeField(auto_now=True, editable=False)
     note = models.TextField()
diff --git a/src/role/urls.py b/src/role/urls.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/stats/migrations/0002_auto_20190105_2221.py b/src/stats/migrations/0002_auto_20190105_2221.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac48b18a93a3d57d6fc4de8a0338260b25bfa776
--- /dev/null
+++ b/src/stats/migrations/0002_auto_20190105_2221.py
@@ -0,0 +1,24 @@
+# Generated by Django 2.0.1 on 2019-01-05 21:21
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('stats', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='note',
+            name='event',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notes_event', to='stats.Event'),
+        ),
+        migrations.AlterField(
+            model_name='note',
+            name='user',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notes_user', to='account.Profile'),
+        ),
+    ]
diff --git a/src/stats/migrations/0003_auto_20190105_2227.py b/src/stats/migrations/0003_auto_20190105_2227.py
new file mode 100644
index 0000000000000000000000000000000000000000..3e826f0240a8e3ea7a4fc32469ec3c12d61b2515
--- /dev/null
+++ b/src/stats/migrations/0003_auto_20190105_2227.py
@@ -0,0 +1,24 @@
+# Generated by Django 2.0.1 on 2019-01-05 21:27
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('stats', '0002_auto_20190105_2221'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='note',
+            name='event',
+            field=models.ForeignKey(default='', on_delete=django.db.models.deletion.CASCADE, related_name='notes_event', to='stats.Event'),
+        ),
+        migrations.AlterField(
+            model_name='note',
+            name='user',
+            field=models.ForeignKey(default='', on_delete=django.db.models.deletion.CASCADE, related_name='notes_user', to='account.Profile'),
+        ),
+    ]
diff --git a/src/stats/migrations/0004_auto_20190105_2227.py b/src/stats/migrations/0004_auto_20190105_2227.py
new file mode 100644
index 0000000000000000000000000000000000000000..48f1c3687c99af521557572ee5b43ab6753c5c0b
--- /dev/null
+++ b/src/stats/migrations/0004_auto_20190105_2227.py
@@ -0,0 +1,24 @@
+# Generated by Django 2.0.1 on 2019-01-05 21:27
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('stats', '0003_auto_20190105_2227'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='note',
+            name='event',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notes_event', to='stats.Event'),
+        ),
+        migrations.AlterField(
+            model_name='note',
+            name='user',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notes_user', to='account.Profile'),
+        ),
+    ]
diff --git a/src/stats/models.py b/src/stats/models.py
index d8ea90905d2b9a04257e5e581920fd99dc9b073b..0b2c91d6e7f22facba041f20ddc75bde720bb6d5 100644
--- a/src/stats/models.py
+++ b/src/stats/models.py
@@ -17,8 +17,8 @@ class Event(models.Model):
 
 
 class Note(models.Model):
-    event = models.ForeignKey(Event, related_name='notes_event', on_delete=models.CASCADE)
-    user = models.ForeignKey(Profile, related_name='notes_user', on_delete=models.CASCADE)
+    event = models.ForeignKey(Event, related_name='notes_event', on_delete=models.CASCADE, blank=True, null=True, )
+    user = models.ForeignKey(Profile, related_name='notes_user', on_delete=models.CASCADE, blank=True, null=True, )
     note = models.TextField()
     created_by = models.ForeignKey(Profile, related_name='created_notes', on_delete=models.CASCADE)
     created_at = models.DateTimeField(auto_now_add=True, editable=False)