2
我試圖實現一個簡單的「檢查點」系統來保存部分完成的表單。對於數據錄入項目,我有一套大型表單(比如說100個條目)。現在,如果這個人退出或者中途退出,那麼我希望保存這個進程 - 但是我不希望半數輸入的數據保存在數據庫中,直到完成。如何將request.POST序列化到數據庫並再次返回
據我所見,處理這個問題的最佳方法是將request.POST
保存到數據庫字段並再次將其拉出,例如,
def myview(request, obj_id):
obj = get_object_or_404(Task, obj_id)
if request.POST:
# save checkpoint
obj.checkpoint = serializers.serialize("json", request.POST)
else:
# load last version from database.
request.POST = serializers.deserialize("json", obj.checkpoint)
formset = MyFormSet(request.POST)
# etc.
但是,這給了我以下錯誤:
'unicode' object has no attribute '_meta'
我試過簡單的JSON和泡菜,並得到了同樣的錯誤。有沒有辦法解決?
不工作 - 我得到以下錯誤:AttributeError的: '快譯通' 對象有沒有屬性 '的GetList' – Puzzled79 2013-04-29 10:02:40
@ Simon7,Django的request.POST'是不是一個簡單的字典,而是一個'QueryDict'。所以在使用保存的數據時可能會產生錯誤。從字典創建querydict參考http://stackoverflow.com/questions/13363628/django-can-i-create-a-querydict-from-a-dictionary – Rohan 2013-04-29 11:40:56
好吧,似乎工作 - 感謝羅漢 – Puzzled79 2013-04-30 06:16:52