我想通过以下方式收集用户信息:
user
分配给所有这些信息并将其保存到db 我到目前为止发现只能在视图功能上使用LoginRequiredMixin
/ login_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向导。
有解决方案吗?我很茫然地找到解决这个问题的方法,浪费了很多时间。谢谢!
答案 0 :(得分:2)
您可以覆盖dispatch
方法,并在检查当前步骤后返回PermissionDenied
。
请记住,您需要先运行父级,因为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