Different Validation In Drf Serializer Per Request Method
Lets say i have a model like so: class MyModel(models.Model): first_field = models.CharField() second_field = models.CharField() and an API view like so: class MyModelDeta
Solution 1:
I need more space than comments provide to make my meaning clear. So here is what I suggest:
Different formatting means different serializers.
So here you have, for instance a
MyModelSerializer
and aMyModelCreationSerializer
. Either create them independently, or have one inherit the other and specialize it (if it makes sense).Use the appropriate
GenericAPIView
hook to return the correct serializer class depending onself.action
. A very basic example could be:classMyModelDetailAPI(GenericAPIView):# serializer_class = unneeded as we override the hook belowdefget_serializer_class(self): ifself.action == 'create': return MyModelCreationSerializer return MyModelSerializer
Default actions in regular viewsets are documented here, they are:
create
: POST method on base route urllist
: GET method on base route urlretrieve
: GET method on object urlupdate
: PUT method on object urlpartial_update
: PATCH method on object urldestroy
: DELETE method on object url
Post a Comment for "Different Validation In Drf Serializer Per Request Method"