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