2015-05-29 75 views
0

我有一個Comment對象,它有一個text字段。爲了編輯它的文本字段,我們可以發送一個PATCH請求(基於REST原則)。我正在使用django-tastypie作爲REST API。 現在我想保留此文本字段的歷史記錄,以便原始文本不會被刪除,而是存儲在其他某個對象中。 我們可以製作具有old_textnew_text字段的新型EditedComment型號。如何使用django-tastypie編寫PATCH請求的幫助方法?

現在我的問題是如何填充此模型?我將需要一些幫助方法,每請求PATCH,創建一個EditedComment模型的實例並將其保存在數據庫中。

回答

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