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

How to write helper method for PATCH request using django-tastypie?

我有一个 Comment 对象,它有一个 text 字段。为了编辑它的文本字段,我们可以发送一个 PATCH 请求(基于 REST 原则)。我正在为 REST API 使用 django-tastypie。 现在我想保留这个文本字段的历史记录,这样原始文本就不会被删除,而是存储在其他一些对象中。 我们可以创建一个新的 EditedComment 模型,其中包含 old_textnew_text 字段。

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

CommentResource中添加obj_update方法:(假设有一个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