Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在django中表单向导的步骤2/3中验证/注册用户_Django_Django Forms - Fatal编程技术网

在django中表单向导的步骤2/3中验证/注册用户

在django中表单向导的步骤2/3中验证/注册用户,django,django-forms,Django,Django Forms,我想通过以下方式收集用户信息: 在出示表格时,首先询问一般信息 请她注册/登录 询问一些补充信息 最后,将所有这些信息分配给她user,并将其保存到数据库中 到目前为止,我的发现是,只能使用查看功能上的LoginRequiredMixin/login\u required来保护向导,例如: @login_required def wizard(request, **kwargs): forms = ( ('painter', PainterForm),

我想通过以下方式收集用户信息:

  • 在出示表格时,首先询问一般信息
  • 请她注册/登录
  • 询问一些补充信息
  • 最后,将所有这些信息分配给她
    user
    ,并将其保存到数据库中
  • 到目前为止,我的发现是,只能使用查看功能上的
    LoginRequiredMixin
    /
    login\u required
    来保护向导,例如:

    @login_required
    def wizard(request, **kwargs):
        forms = (
                 ('painter', PainterForm),
                 # it should show a login page here
                 ('outcome', PainterOutcomeForm),
                 )
        wizard = PainterWizard.as_view(forms, url_name='wizard_step')
        return wizard(request, **kwargs)
    
    这将转换为向导的步骤2、步骤1、步骤3和步骤4


    有解决办法吗?我很失望能找到解决这个问题的办法,浪费了很多时间。谢谢大家!

    检查当前步骤后,您可以覆盖
    分派
    方法并返回
    许可被拒绝

    请记住,您需要首先运行父级,因为
    dispatch
    正在用所有需要的向导数据填充实例

    伪代码:

    def dispatch(self, request, *args, **kwargs):
        response = super(MyWizardView, self).dispatch(request, *args, **kwargs)
    
        if self.steps.current == '2'
            if not request.user.is_authenticated():
                raise PermissionDenied
    
        return response