如何将参数传递给DRF中序列化器上的save()
方法?
更具体地说,我需要将cascade=True
标志传递给save方法。
我正在使用DRF与MongoDB,我有一个参考文档文档,我想保存父文档时保存。根据我的理解,Mongoengine为此提供了级联标志。否则我收到此错误:
ValidationError(事件:无)(您只能引用一次文档 它们已保存到数据库中:
现在如何让我的序列化器使用级联?
答案 0 :(得分:0)
您可以通过覆盖序列化程序上的create
和update
方法来覆盖how Django REST Framework saves objects。
class MyMongoSerializer(serializers.ModelSerializer):
def update(self, instance, validated_data):
from rest_framework.serializers import raise_errors_on_nested_writes
raise_errors_on_nested_writes('update', self, validated_data)
for attr, value in validated_data.items():
setattr(instance, attr, value)
# Override how the save happens
instance.save(cascade=True)
return instance
由于序列化程序上的create
方法,您可能也遇到了问题。它不使用obj.save
,而是使用Model.objects.create
。