1

フォーム ウィザードにいくつか問題があります。メソッド 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 でアプリを実行しているときに発生しました。

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 は動的 form_list を持つ FormWizard サブクラスです。[RegistrationForm, 0] が必要です。作成時にフォームが 1 つしかない場合、ウィザードは form_list 関数に到達しないためです。テンプレートのことは一目瞭然です

于 2010-01-29T21:09:52.513 に答える