diff --git a/semantics/views.py b/semantics/views.py
index cb526eb796eec7ad658580e831db402ad58bc9b0..d938271e556cc1dec6ed250a618443a5b8af7894 100644
--- a/semantics/views.py
+++ b/semantics/views.py
@@ -29,7 +29,7 @@ def frame_confirm_invalid(request, frame_pk):
     frame = get_object_or_404(Frame.objects.filter(status=choices.FrameStatus.INVALID).select_for_update(), pk=frame_pk)
     frame.status = choices.FrameStatus.BAD
     frame.save()
-    removeSlovalFrameMappingsAndAssigments(frame_pk)
+    removeSlovalFrameMappingsAndAssigments(frame)
 
     http = urllib3.PoolManager()
     r = http.request('GET', settings.SLOWAL_FRAME_REMOVE_SERVICE_URL + str(frame_pk) +
@@ -45,7 +45,7 @@ def frame_reject_invalid(request, frame_pk):
     frame = get_object_or_404(Frame.objects.filter(status=choices.FrameStatus.INVALID).select_for_update(), pk=frame_pk)
     frame.status = choices.FrameStatus.NEW
     frame.save()
-    removeSlovalFrameMappingsAndAssigments(frame_pk)
+    removeSlovalFrameMappingsAndAssigments(frame)
 
     http = urllib3.PoolManager()
     r = http.request('GET', settings.SLOWAL_FRAME_REMOVE_SERVICE_URL + str(frame_pk) +
@@ -61,7 +61,7 @@ def frame_mark_as_bad(request, frame_pk):
     frame = get_object_or_404(Frame.objects.filter(status=choices.FrameStatus.NEW).select_for_update(), pk=frame_pk)
     frame.status = choices.FrameStatus.BAD
     frame.save()
-    removeSlovalFrameMappingsAndAssigments(frame_pk)
+    removeSlovalFrameMappingsAndAssigments(frame)
 
     http = urllib3.PoolManager()
     r = http.request('GET', settings.SLOWAL_FRAME_REMOVE_SERVICE_URL + str(frame_pk) +
@@ -70,15 +70,16 @@ def frame_mark_as_bad(request, frame_pk):
     return {}
 
 
-def removeSlovalFrameMappingsAndAssigments(frame_pk):
+def removeSlovalFrameMappingsAndAssigments(frame):
     #odpianie z ramy zunifikowanej
+    frame_pk = frame.pk
     unified_frame2_slowal_frame_mappings = UnifiedFrame2SlowalFrameMapping.objects.filter(slowal_frame_id=frame_pk)
     for unified_frame2_slowal_frame_mapping in unified_frame2_slowal_frame_mappings:
         unified_frame_argument_slowal_frame_mappings = UnifiedFrameArgumentSlowalFrameMapping.objects.filter(unified_frame_mapping=unified_frame2_slowal_frame_mapping)
         for unified_frame_argument_slowal_frame_mapping in unified_frame_argument_slowal_frame_mappings:
             unified_frame_argument_slowal_frame_mapping.delete()
         unified_frame2_slowal_frame_mapping.delete()
-    Assignment.delete(subject_id=frame_pk)
+    Assignment.delete(subject=frame)
 
 
 @ajax(login_required=True, method='post')
@@ -98,7 +99,7 @@ def frame_confirm_as_not_matching_unified_frame(request, frame_pk):
     frame = get_object_or_404(Frame.objects.select_for_update(), pk=frame_pk)
     frame.status = choices.FrameStatus.NEW
     frame.save()
-    removeSlovalFrameMappingsAndAssigments(frame_pk)
+    removeSlovalFrameMappingsAndAssigments(frame)
 
     http = urllib3.PoolManager()
     r = http.request('GET', settings.SLOWAL_FRAME_REMOVE_SERVICE_URL + str(frame_pk) +
diff --git a/unifier/views.py b/unifier/views.py
index 76f607ed67221fc9667e08ffa0a1d7926832dbea..a37a4c0ff729c2ac750c687e1c60efc2a44eee3d 100644
--- a/unifier/views.py
+++ b/unifier/views.py
@@ -257,12 +257,13 @@ def get_unified_frames(request):
         res = {}
 
         for unifiedFrame in unified_frames:
+            user = assignment.user.username if (
+                assignment := unifiedFrame.assignments.first()) else None
             res[unifiedFrame.id] = {
                 'id': str(unifiedFrame.id),
                 'title': unifiedFrame.title,
                 'status': unifiedFrame.status,
-                'assignee_username': assignment.user.username if (
-                    assignment := unifiedFrame.assignments.first()) else None,
+                'assignee_username': user,
                 'hierarchy_exists': unifiedFrame.hasHierarchyElems,
             }
 
@@ -895,25 +896,29 @@ def frame_assign(request):
     return JsonResponse({})
 
 
-def remove_unified_frame_mappings_and_assigments(unified_frame_id):
+def remove_unified_frame_mappings_and_assigments(unified_frame):
+    unified_frame_id = unified_frame.pk
     # odpianie z ramy zunifikowanej
     unified_frame2_slowal_frame_mappings = UnifiedFrame2SlowalFrameMapping.objects.filter(
         unified_frame_id=unified_frame_id)
     for unifiedFrame2SlowalFrameMapping in unified_frame2_slowal_frame_mappings:
         unifiedFrame2SlowalFrameMapping.slowal_frame.status = 'N'
         unifiedFrame2SlowalFrameMapping.slowal_frame.save()
-        Assignment.delete(subject_id=unifiedFrame2SlowalFrameMapping.slowal_frame.id)
+        Assignment.delete(subject=unifiedFrame2SlowalFrameMapping.slowal_frame)
         unified_frame_argument_slowal_frame_mappings = UnifiedFrameArgumentSlowalFrameMapping.objects.filter(
             unified_frame_mapping=unifiedFrame2SlowalFrameMapping)
         unified_frame_argument_slowal_frame_mappings.delete()
         unifiedFrame2SlowalFrameMapping.delete()
-    Assignment.delete(subject_id=unified_frame_id)
+    Assignment.delete(subject=unified_frame)
 
 
 @ajax(login_required=True, method='post')
 @transaction.atomic
 def delete_unified_frame(request, unified_frame_id):
-    remove_unified_frame_mappings_and_assigments(unified_frame_id)
+
+    unified_frame = UnifiedFrame.objects.get(id=unified_frame_id)
+
+    remove_unified_frame_mappings_and_assigments(unified_frame)
     UnifiedFrameArgument.objects.filter(unified_frame_id=unified_frame_id).delete()
 
     slowal_frames = UnifiedFrame2SlowalFrameMapping.objects.filter(unified_frame_id=unified_frame_id).all()
@@ -924,7 +929,7 @@ def delete_unified_frame(request, unified_frame_id):
         r = http.request('GET', settings.SLOWAL_FRAME_REMOVE_SERVICE_URL + slowal_frames_ids +
                          settings.SLOWAL_FRAME_SERVICE_SYSTEM_TYPE_ARG)
 
-    UnifiedFrame.objects.get(id=unified_frame_id).delete()
+    unified_frame.delete()
 
     return {}
 
diff --git a/users/models.py b/users/models.py
index b7f4cc76c48ee37339d9c733b58aa659e0c33fe8..87ef01968099e45fa24d5269947f10269c023d72 100644
--- a/users/models.py
+++ b/users/models.py
@@ -25,9 +25,10 @@ class Assignment(models.Model):
         )
 
     @classmethod
-    def delete(cls, subject_id):
+    def delete(cls, subject):
         Assignment.objects.filter(
-            subject_id=subject_id,
+            subject_ct=ContentType.objects.get_for_model(subject),
+            subject_id=subject.pk,
         ).delete()