django FormWizard(formtools)如何根据请求动态更改form_list?

时间:2019-01-20 22:23:20

标签: python django django-forms django-formwizard django-formtools

对此表示感谢。 来自SessionWizardView的{​​{1}},我希望能够以不同的形式发送,该形式基于正在访问用户所属的django-formtools / request.user.restaurant。不同的餐厅将针对注册流程使用不同的表单集,但我不知道如何适应这种情况。看来我需要传递request.site urls.py中的公司列表,或者提前在班级中列出表格。

.as_view()

由于MY_TEMPLATES = { '0': '/templates/wizard_1.html', '1': '/templates/wizard_2.html', '2': '/templates/wizard_3.html' } class MySignupWizard(SessionWizardView): form_list = [AddressForm, MenuForm, HoursForm,ContactForm] def get_template_names(self): return [MY_TEMPLATES[self.steps.current]] def done(self, form_list, **kwargs): etc. 可以访问get_template_names(self)self.request,所以我想我可以将self.request.site用作嵌套字典,然后将MY_TEMPLATES与当前步骤。尽管有一种方法可以将数据直接传递给这些模板?像查询一样,将self.request.site数据传递给每个模板吗?

但是我不知道如何动态修改Restaurant。上面有标准的四种形式,但是有些餐馆只需要三种形式或略有不同的形式。我想做类似的事情:

form_list

,然后每个餐厅都有要使用的表单列表,类似这样。设置restaurant = Restaurant.objects.get(url=request.site.domain) 或当前格式。 有什么想法吗?

0 个答案:

没有答案