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

标签 python django cookies django-forms django-formwizard

在理解 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/

相关文章:

CodeIgniter session 类在Chrome中不起作用

python - 如何将空格分隔的键字符串,唯一单词的值对转换为字典

python - 在 Django 模型中将字段命名为 'id' 是否安全?

DJANGO:TemplateDoesNotExist:auth/user_confirm_delete.html

python - 如何在django中通过实例获取所有对象

python - Django 不搜索 APP_DIRS 设置中定义的模板目录

java - Android java 单元测试,用于检查代码的可用性

cookies - Dart/Flutter 身份验证实现

python - 在 Python 中使用 hashlib 检测可用的非标准哈希算法

python - Pandas 多索引子集选择