如何使用 django-tastypie 为 PATCH 请求编写辅助方法?
How to write helper method for PATCH request using django-tastypie?
我有一个 Comment
对象,它有一个 text
字段。为了编辑它的文本字段,我们可以发送一个 PATCH
请求(基于 REST 原则)。我正在为 REST API 使用 django-tastypie
。
现在我想保留这个文本字段的历史记录,这样原始文本就不会被删除,而是存储在其他一些对象中。
我们可以创建一个新的 EditedComment
模型,其中包含 old_text
和 new_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
我有一个 Comment
对象,它有一个 text
字段。为了编辑它的文本字段,我们可以发送一个 PATCH
请求(基于 REST 原则)。我正在为 REST API 使用 django-tastypie
。
现在我想保留这个文本字段的历史记录,这样原始文本就不会被删除,而是存储在其他一些对象中。
我们可以创建一个新的 EditedComment
模型,其中包含 old_text
和 new_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