在Django Rest框架中更新之前更改数据

时间:2018-06-27 09:33:03

标签: django django-rest-framework

我一直在寻找答案,但他们说要使用 update(),但它对我不起作用

用户更新实体后,我想先更改其数据,然后再保存

NB:通过重写方法 perform_create()可以完成创建它的相同操作。

这是我的代码:

更新视图

class CommentUpdateAPIView(generics.UpdateAPIView):
    serializer_class    = CommentModelSerializer
    permission_classes  = [permissions.IsAuthenticated]

序列化器

class CommentModelSerializer(serializers.ModelSerializer):
class Meta:
    model  = Comment   # the model to get fields from
    fields = [      
    'id',
    'user',
    'content',
    'timestamp',
    ]

谢谢

1 个答案:

答案 0 :(得分:1)

感谢neverwalkaloner, 解决方法如下: 在我的UpdateAPIView中,我重写了通用API视图的perform_update()方法,请参见此处的文档GenericAPIView

最后做到了:

class CommentUpdateAPIView(generics.UpdateAPIView):
serializer_class    = CommentModelSerializer
permission_classes  = [permissions.IsAuthenticated]
queryset            = Comment.objects.all()

    def perform_update(self, serializer):
        serializer.save(last_update_time = datetime.now())