Django の単一ページで複数のフォームを処理する
単一の Django テンプレートで複数のフォームを操作する場合、どのフォームを使用するかを決定することが重要です両方のフォームが同時に処理されることを避けるために送信されています。主な課題は、POST データ内で目的のフォームを特定することにあります。
複数のフォーム オプション
この問題に対処するには、いくつかのアプローチがあります。
解決策の例
1 つに 2 つのフォームがある次のシナリオを考えてみましょう。ページ: 期待されるフレーズ形式と禁止されているフレーズ形式。彼らの送信を処理するために、次のコードを使用します:
if request.method == 'POST': if 'bannedphrase' in request.POST: bannedphraseform = BannedPhraseForm(request.POST, prefix='banned') if bannedphraseform.is_valid(): bannedphraseform.save() expectedphraseform = ExpectedPhraseForm(prefix='expected') elif 'expectedphrase' in request.POST: expectedphraseform = ExpectedPhraseForm(request.POST, prefix='expected') if expectedphraseform.is_valid(): expectedphraseform.save() bannedphraseform = BannedPhraseForm(prefix='banned') else: bannedphraseform = BannedPhraseForm(prefix='banned') expectedphraseform = ExpectedPhraseForm(prefix='expected')
この例では、送信ボタンの値について POST データをチェックします。値に基づいて、対応するフォームをインスタンス化し、保存しようとします。プレフィックスにより、送信されたデータがフォームに正しくバインドされるようになります。
以上が単一の Django ページで複数のフォームを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。