我有一个模型:
class Size(models.Model):
size = models.DecimalField(max_digits=5, decimal_places=1)
def plus_one(self):
self.size += 1
self.save()
为此我有一个简单的序列化程序:
class SizeSerializer(serializers.ModelSerializer):
class Meta:
model = Size
fields = '__all__'
如何使用 DRF 从我的 View 中调用 plus_one 模型方法? 它是如何调用的,什么是好的做法?谢谢!
添加:
class SizeAPIView(generics.UpdateAPIView):
serializer_class = SizeSerializer
queryset = Size.objects.filter()
最佳答案
如果我没理解错的话,每次更新对象时都需要调用 plus_one
。在这种情况下,您可以像这样覆盖 perform_update()
方法:
class SizeAPIView(generics.UpdateAPIView):
serializer_class = SizeSerializer
queryset = Size.objects.filter()
def perform_update(self, serializer):
serializer.save()
serializer.instance.plus_one()
关于django - 通过 Django Rest Framework View 调用模型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51002135/