diff --git a/contracts/admin.py b/contracts/admin.py
index 6f56ad0c276af9381c577d45d72bf423bc5c6e2b..c12e8285262b1afe2c63bf96361dbf55f8d4ec87 100644
--- a/contracts/admin.py
+++ b/contracts/admin.py
@@ -71,21 +71,18 @@ def permissions_mixin_factory(
 get_obj_contract = lambda obj: obj.contract
 
 
-OwnPermissionsMixin = permissions_mixin_factory(
-    "contracts.edit_others",
-    "contracts.delete_others",
-    lambda request, obj: obj.created_by != request.user,
-)
-
-
-def own_permissions_mixin_save_model(self, request, obj, form, change):
-    if obj.created_by is None:
-        obj.created_by = request.user
-
-    return super().save_model(request, obj, form, change)
-
+class OwnPermissionsMixin(
+    permissions_mixin_factory(
+        "contracts.edit_others",
+        "contracts.delete_others",
+        lambda request, obj: obj.created_by != request.user,
+    )
+):
+    def own_permissions_mixin_save_model(self, request, obj, form, change):
+        if obj.created_by is None:
+            obj.created_by = request.user
 
-OwnPermissionsMixin.save_model = own_permissions_mixin_save_model
+        return super().save_model(request, obj, form, change)
 
 
 ParentContractApprovedPermissionsMixin = permissions_mixin_factory(