Django FormWizard动态改变form_list

时间:2010-01-29 18:44:24

标签: django django-formwizard

我在使用表单向导时遇到了一些问题,也许有人可以解释一下。根据方法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的应用程序时。

1 个答案:

答案 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函数。模板的东西很明显