Editing django-rest-framework serializer object before save
Solution 1:
Now edited for REST framework 3
With REST framework 3 the pattern is now:
if serializer.is_valid():
serializer.save(user_id=15)
Note that the serializers do not now ever expose an unsaved object instance as serializer.object
, however you can inspect the raw validated data as serializer.validated_data
.
If you're using the generic views and you want to modify the save behavior you can use the perform_create
and/or perform_update
hooks...
def perform_create(self, serializer):
serializer.save(user_id=15)
Solution 2:
You can edit the serializer's object before save the serializer:
if serializer.is_valid():
serializer.object.user_id = 15 # <----- this line
serializer.save()