我有一个Invoice
模型,并且在重写的recalculate
方法中有一个Invoice.save()
参数。
我希望始终重新计算Invoice
,除非使用其序列化程序创建时除外。
有可能吗?
序列化器使用create
,所以我不确定该怎么做。 (这是一个ModelSerializer)
ModelSerializer使用QuerySet Manager的create(...)
方法创建模型实例。因此,只需在序列化程序中再次调用save方法为
class InvoiceSerializer(serializers.ModelSerializer):
class Meta:
fields = '__all__'
model = Invoice
def create(self, validated_data):
instance = super().create(validated_data)
instance.save(recalculate=False)
return instance