gpt4 book ai didi

python - Django 表单向导备份和恢复

转载 作者:太空宇宙 更新时间:2023-11-03 11:51:55 25 4
gpt4 key购买 nike

在理解 Django 的 contrib 库中的表单向导模块并将备份和恢复功能应用到该模块时,我遇到了一个小问题。

我试图创建一个存储类,它使用数据库来存储当前状态,而不是 cookie 或 session ,但这并没有解决我的问题,因为当表单初始化时,所有旧数据都会被清除,这在两个 cookie 存储中是相同的和 session 存储(我的是模仿 cookie 一个但保存到 db)

我需要填写的问题是,如果用户在第 x.th 步离开表格(假设电力中断)然后再次登录并启动向导,用户必须继续直到完成或单击“取消” (尚未实现)。

最佳答案

您可以像这样在 View 中覆盖 post 方法:

class YourWizardView(SessionWizardView):

def post(self, *args, **kwargs):
form = self.get_form(
data=self.request.POST, files=self.request.FILES)
data = self.get_all_cleaned_data()
form.is_valid() # to generate cleaned data
data.update(form.cleaned_data)
#Save your data HERE
return super(YourWizardView, self).post(*args, **kwargs)
def get_form_instance(self, step):
# Getting obj instance values
obj = None
if 'pk' in self.kwargs:
obj = get_object_or_404(
YourModel, pk=self.kwargs['pk'])
return self.instance_dict.get(step, obj)

如果您希望用户返回并查看数据而不单击下一步,您可以执行一些 javascript 通过 ajax 发布数据(例如每 5 秒一次)

关于python - Django 表单向导备份和恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24654718/

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