Reputation: 8722
I have a model where I am trying to create an object using DRF. The model class has a method which I would like to call before saving the serializer. Something like this:
class MyModel(models.Model):
...
def do_something(self):
...
The serializer code:
serializer = MyModelSerializer(data=request.data)
serializer.obj.do_something() # Does not work
serializer.save()
Hopefully, you guys get the idea.
Upvotes: 1
Views: 1752
Reputation: 2474
Afaik DRF doesn't support things such as save(commit=False)
but, alternatively, you can override MyModelSerializer.create
method:
class MyModelSerializer(ModelSerializer):
class Meta:
model = MyModel
def create(self, validated_data):
instance = MyModel(**validated_data)
instance.do_something()
instance.save()
return instance
Upvotes: 5