いくつかのフォーム (Django 1.4) で構成されるフォーム ウィザードがあります。機能の状態をprocess_step
(中間ステップで)確認し、フォームウィザードを終了してホームページにリダイレクトしようとしています。HttpResponseRedirect(<homepage>)
関数の最後でリダイレクトしようとするとprocess_step
、無視されて次のフォームステップに進みます。
質問する
700 次
2 に答える
0
Process_step はデータを処理するだけで、返されるものはレンダリングされません。おそらく最善の策は render_next_step をオーバーライドすることですが、他のいくつかの関数でも処理できます。
したがって、render_next_step をオーバーライドして、次のようにします。
def render_next_step(self, form, **kwargs):
data = get_cleaned_data('2') # or whatever your step with the flag is
if data.get('your_flag', False):
self.storage.reset()
return HttpResponseRedirect()
return super(Wizard, self).render_next_step(self, form, **kwargs)
現在または次のステップが何であるかを確認するために、クリーンなデータを取得する前に条件を追加することもできます。
于 2012-11-09T21:58:25.130 に答える
0
HttpResponse
Django が実際に次のステップをレンダリングするには、 return 、 orなどを実行する必要がありますreturn render_to_response
。したがって、ほとんどの場合、制御フローは単にHttpResponseRedirect
.
于 2012-11-09T17:23:15.107 に答える