如何使用django-tastypie为PATCH请求编写辅助方法?

时间:2015-05-29 09:48:43

标签: python django rest tastypie

我有一个Comment对象,其中包含text字段。为了编辑它的文本字段,我们可以发送PATCH请求(基于REST原则)。我正在使用django-tastypie用于REST API。 现在我想保留此文本字段的历史记录,以便原始文本不会被删除但存储在其他对象中。 我们可以制作一个包含EditedCommentold_text字段的新new_text模型。

现在我的问题是我如何填充这个模型?我需要一些帮助方法,在每个PATCH请求中创建EditedComment模型的实例并将其保存在数据库中。

1 个答案:

答案 0 :(得分:1)

obj_update中添加CommentResource方法:(假设uuid字段)

def obj_update(self, bundle, **kwargs):
        old_text = bundle.obj.text
        new_text = bundle.data['text']
        Comment.objects.filter(uuid=bundle.data['uuid']).update(text=new_text) # update comment
        c = Comment.objects.get(uuid=bundle.data['uuid'])
        EditedComment(cmt=c, old_text = old_text, new_text = new_text).save()
        return bundle