我在使用表单向导时遇到了一些问题,也许有人可以解释一下。根据方法process_step中的docstring:我可以“动态改变self.form_list”。因此,根据我的项目需求,我将表单附加到form_list。我附加的表单包含问题和答案:http://dpaste.com/hold/152201/
问题是当2个人同时击中表格向导时,他们会开始看到对方的问题和答案。我想我不明白process_step如何建议我可以动态改变form_list,这样做我正在修改另一个用户的表单列表。 form_list是访问urls.py中定义的formwizard url的访问者之间的共享对象吗?我在apache2 / prefork / worker / mod_wsgi下看到了这个问题,并在运行带有runserver的应用程序时。
答案 0 :(得分:2)
你如何使用FormWizard?如果你把它放在urls.py中,就像docs说的那样它可以缓存,我有几次这个问题。只需将其放在以下视图中:
def my_view(request):
return FormWizard(request)
更新:真实的例子
def registration_wizard(request, template_name=None):
rw = RegistrationWizard([RegistrationForm, 0])
#hack formwizard to replace default template
if template_name:
rw.get_template = lambda x: template_name
return rw(request)
这里RegistrationWizard是一个FormWizard子类,带有动态form_list,[RegistrationForm,0]是必需的,因为如果在创建时只有一个表单,向导将不会获得form_list函数。模板的东西很明显