Browse Source

fix(api): streamline calls to RRsetSerializer.save()

Peter Thomassen 5 years ago
parent
commit
f91c27ce8c
2 changed files with 11 additions and 3 deletions
  1. 8 0
      api/desecapi/serializers.py
  2. 3 3
      api/desecapi/views.py

+ 8 - 0
api/desecapi/serializers.py

@@ -303,6 +303,10 @@ class RRsetSerializer(ConditionalExistenceModelSerializer):
 
 
         return instance
         return instance
 
 
+    def save(self, **kwargs):
+        kwargs.setdefault('domain', self.domain)
+        return super().save(**kwargs)
+
     @staticmethod
     @staticmethod
     def _set_all_record_contents(rrset: models.RRset, rrs):
     def _set_all_record_contents(rrset: models.RRset, rrs):
         """
         """
@@ -497,6 +501,10 @@ class RRsetListSerializer(serializers.ListSerializer):
 
 
         return ret
         return ret
 
 
+    def save(self, **kwargs):
+        kwargs.setdefault('domain', self.child.domain)
+        return super().save(**kwargs)
+
 
 
 class DomainSerializer(serializers.ModelSerializer):
 class DomainSerializer(serializers.ModelSerializer):
 
 

+ 3 - 3
api/desecapi/views.py

@@ -227,11 +227,11 @@ class RRsetList(EmptyPayloadMixin, DomainViewMixin, generics.ListCreateAPIView,
 
 
     def perform_create(self, serializer):
     def perform_create(self, serializer):
         with PDNSChangeTracker():
         with PDNSChangeTracker():
-            serializer.save(domain=self.domain)
+            serializer.save()
 
 
     def perform_update(self, serializer):
     def perform_update(self, serializer):
         with PDNSChangeTracker():
         with PDNSChangeTracker():
-            serializer.save(domain=self.domain)
+            serializer.save()
 
 
 
 
 class Root(APIView):
 class Root(APIView):
@@ -375,7 +375,7 @@ class DynDNS12Update(APIView):
             raise e
             raise e
 
 
         with PDNSChangeTracker():
         with PDNSChangeTracker():
-            serializer.save(domain=domain)
+            serializer.save()
 
 
         return Response('good', content_type='text/plain')
         return Response('good', content_type='text/plain')