Asi*_*tar 4 python django django-models django-rest-framework
我正在使用 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)
序列化程序有一个实例属性,在调用 save 之前不会更新。所以:
old_quantity = serializer.instance.quantity
instance = serializer.save()
new_quantity = instance.quantity
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
789 次 |
| 最近记录: |