小编Asi*_*tar的帖子

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

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

这是我的models.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()
Run Code Online (Sandbox Code Playgroud)

这是我的views.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.
Run Code Online (Sandbox Code Playgroud)

python django django-models django-rest-framework

4
推荐指数
1
解决办法
789
查看次数