在Django 中處理單一頁面上的多個表單
在單一Django 範本上處理多個表單時,必須確定哪個表單正在提交以避免同時處理兩個表格。主要挑戰在於識別 POST 資料中所需的表單。
多個表單選項
解決此問題的方法有多種:
範例解決方案
考慮以下場景,其中我們有兩個表單頁:預期短語形式和禁止短語形式。為了處理他們的提交,我們使用以下程式碼:
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中文網其他相關文章!