我一直在寻找答案,但他们说要使用 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',
]
谢谢
答案 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())