1

我遇到了表单向导的一些问题,也许有人可以解释一下。根据方法 process_step 中的文档字符串:我可以“动态更改 self.form_list”。因此,根据我的项目需要,我将表单附加到 form_list。我附加的表格包含问题和答案:http ://dpaste.com/hold/152201/

问题是当 2 个人同时点击窗体向导时,他们开始看到彼此的问题和答案。我想我不明白 process_step 如何建议我可以动态更改 form_list,当我这样做时,我正在修改另一个用户的表单列表。form_list 是访问 urls.py 中定义的表单向导 url 的访问者之间的共享对象吗?我在 apache2/prefork/worker/mod_wsgi 下以及使用 runserver 运行应用程序时看到了这个问题。

4

1 回答 1

2

您如何使用表单向导?如果你像文档说的那样把它放在 urls.py 中,那么它可以被缓存,我有几次这个问题。只需将其放在如下视图中:

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 函数。模板的东西是不言自明的

于 2010-01-29T21:09:52.513 回答