gpt4 book ai didi

python - 如何在更新时获取 django 模型字段的旧值而不使用 django rest 框架中的信号?

转载 作者:行者123 更新时间:2023-12-04 00:05:18 24 4
gpt4 key购买 nike

我正在使用 django-rest-framework。我有一个案例,一旦创建或更新第一个模型的实例,我需要更新其他模型的字段。

这是我的 模型.py:

class FirstModel(models.Model):
first_model_item = models.ForeignKey(Item)
quantity = models.IntegerField()

class SecondModel(models.Model):
second_model_item = models.ForeignKey(FirstModel)
quantity = models.IntegerField()

这是我的 View .py:
class CreateSecondModelView(generics.CreateAPIView):
permission_classes = ()
queryset = SecondModel.objects.all()
serializer_class = SecondModeSerializer

def perform_create(self, serializer):
instance = serializer.save()
first_model_item = instance.item
first_model_item.quantity -= instance.quantity
first_model_item.save()


class UpdateSecondModelView(generics.RetrieveUpdateAPIView):
permission_classes = ()
queryset = SecondModel.objects.all()
serializer_class = SecondModeSerializer

def perform_update(self, serializer):
instance = serializer.save()
#here i want old value of quantity before updating.

最佳答案

序列化程序有一个实例属性,在调用 save 之前不会更新。所以:

old_quantity = serializer.instance.quantity
instance = serializer.save()
new_quantity = instance.quantity

关于python - 如何在更新时获取 django 模型字段的旧值而不使用 django rest 框架中的信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48808282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com