diff --git a/src/document/models.py b/src/document/models.py
index d86febb2d868fea16983aa4ced5dfe6a1bfd9ede..0c25cf008eca5bc0c14ba8b781e3ff554713816f 100644
--- a/src/document/models.py
+++ b/src/document/models.py
@@ -23,7 +23,7 @@ class Document(models.Model):
         ],
         blank=True,
     )
-    solution = models.ForeignKey(Solution, related_name='files', on_delete=models.DO_NOTHING, blank=True, null=True)
+    solution = models.ForeignKey(Solution, related_name='files', on_delete=models.CASCADE)
 
     def __str__(self):
         return self.name
diff --git a/src/document/serializers.py b/src/document/serializers.py
index 00f7f789dcb28231c76884cf9e2e49501181a0c7..4f6bbad68c108d3a48a4b8b9ccd3d079d84782d4 100644
--- a/src/document/serializers.py
+++ b/src/document/serializers.py
@@ -1,9 +1,10 @@
 from rest_framework import serializers
-
 from common.serializers import CurrentUserProfileDefault
 from . import models
 from common.middleware import CurrentUserMiddleware
 
+_max_count = 5
+
 
 class DocumentSerializer(serializers.ModelSerializer):
     uploaded_by = serializers.HiddenField(default=CurrentUserProfileDefault())
@@ -20,4 +21,7 @@ class DocumentSerializer(serializers.ModelSerializer):
         profile = CurrentUserMiddleware.get_current_user_profile()
         if data['solution'] not in profile.solution.all():
             raise serializers.ValidationError('You dont have permission!')
+        count = models.Document.objects.filter(uploaded_by=profile, solution=data['solution']).count()
+        if count >= _max_count:
+            raise serializers.ValidationError('You cant upload more than ' + str(_max_count) + ' document to one solution!')
         return data
diff --git a/src/homework/serializers.py b/src/homework/serializers.py
index 9d89c5eeb2ed207f0b700efd7e6647e93d7f09a9..a8de6ad3699f26b4a600ee2f2b291dbf11cc011c 100755
--- a/src/homework/serializers.py
+++ b/src/homework/serializers.py
@@ -28,6 +28,7 @@ class SolutionSerializer(serializers.ModelSerializer):
         model = models.Solution
         read_only_fields = ('created_by', 'created_at', 'updated_at', 'ready', 'files')
         fields = (
+            'id',
             'task',
             'created_at',
             'updated_at',
diff --git a/src/stats/serializers.py b/src/stats/serializers.py
index 42db8a865bd95c17c1a0df79c377b4ffa6ae2183..f840e878df76491028c3bbb28c7c9625aabd6ee4 100644
--- a/src/stats/serializers.py
+++ b/src/stats/serializers.py
@@ -18,12 +18,18 @@ class StaffEventSerializer(serializers.ModelSerializer):
     def get_visitor_number(self, obj):
         return obj.visitors.all().count()
 
+    def validate(self, data):
+        for i in data['absent']:
+            if i in data['visitors']:
+                raise serializers.ValidationError('You cant add a student to absent and visitor in the same time.')
+        return data
+
 
 class StudentEventSerializer(serializers.ModelSerializer):
     class Meta:
         model = models.Event
-        fields = ('name', 'date', 'description', )
-        read_only_fields = ('name', 'date', 'description', )
+        fields = ('id', 'name', 'date', 'description', )
+        read_only_fields = ('id', 'name', 'date', 'description', )
 
 
 class NoteSerializer(serializers.ModelSerializer):