【问题标题】:How to write helper method for PATCH request using django-tastypie?如何使用 django-tastypie 为 PATCH 请求编写辅助方法?
【发布时间】:2015-08-12 03:11:39
【问题描述】:
我有一个 Comment 对象,它有一个 text 字段。要编辑它的文本字段,我们可以发送PATCH 请求(基于 REST 原则)。我将django-tastypie 用于 REST API。
现在我想保留这个文本字段的历史记录,这样原始文本就不会被删除,而是存储在其他对象中。
我们可以创建一个具有old_text 和new_text 字段的新EditedComment 模型。
现在我的问题是如何填充这个模型?我需要一些辅助方法,在每个 PATCH 请求上创建一个 EditedComment 模型的实例并将其保存在数据库中。
【问题讨论】:
标签:
python
django
rest
tastypie
【解决方案1】:
在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