【发布时间】:2020-03-05 12:38:40
【问题描述】:
我已经重写了我的序列化程序之一的更新方法,以便在保存对象之前调用模型的方法。像这样:
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = [...]
def update(self, instance, validated_data):
instance.model_method()
instance.save()
return instance
在我看来,我使用serializer.save() 保存序列化程序,当然也使用MyModelSerializer(instance, data=request.data) 设置它。但是,我的实例没有被保存。只需删除更新方法即可保存实例,但显然不会调用model_method()。我该如何解决这个问题?感谢您的帮助。
【问题讨论】:
-
model_method有什么作用?它是否修改了实例的任何属性? -
是的,这正是它的作用
-
您是否尝试在最后(即第一行之后)返回
super()调用而不是调用instance.save()。 -
你能把它写出来作为答案吗?
标签: django django-rest-framework django-serializer