gpt4 book ai didi

django - 如何序列化 request.POST 到数据库并再次返回

转载 作者:行者123 更新时间:2023-12-02 10:01:36 27 4
gpt4 key购买 nike

我正在尝试实现一个简单的“检查点”系统来保存部分完成的表单集。我有一组用于数据输入项目的大型表单(例如 100 个条目)。现在,如果该人中途退出或其他什么原因,那么我希望保存此进度 - 但我不希望将半输入的数据保存在数据库中,直到完成为止。

据我所知,处理此问题的最佳方法是将 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 和 pickle 并得到相同的错误。有没有办法解决?

最佳答案

Django 的序列化器接口(interface)适用于 Django 模型对象。它不适用于其他对象。

您可以尝试使用json

if request.POST:
# save checkpoint
obj.checkpoint = json.dumps(request.POST)
post_data = request.POST
else:
# load last version from database.
post_data = json.loads(obj.checkpoint)

formset = MyFormSet(post_data)

关于django - 如何序列化 request.POST 到数据库并再次返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16271453/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com