DRF-将参数添加到Model.save(…)

问题描述 投票:0回答:1

我有一个Invoice模型,并且在重写的recalculate方法中有一个Invoice.save()参数。

我希望始终重新计算Invoice,除非使用其序列化程序创建时除外。

有可能吗?

序列化器使用create,所以我不确定该怎么做。 (这是一个ModelSerializer)

python django django-models django-rest-framework django-serializer
1个回答
0
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.