如何在單一 Django 頁面上處理多個表單?

Barbara Streisand
發布: 2024-11-19 04:22:02
原創
762 人瀏覽過

How Can I Handle Multiple Forms on a Single Django Page?

在單一 Django 頁面上處理多個表單

在單一 Django 範本頁面上處理多個表單時,識別已提交的表單可能是一個挑戰。這個問題解決了這個問題,並提供了使用表單前綴的解決方案。

如果使用單一表單,標準方法是檢查請求方法並相應地處理表單:

if request.method == 'POST':
    form = AuthorForm(request.POST,)
    if form.is_valid():
        form.save()
        # do something.
else:
    form = AuthorForm()
登入後複製

但是,對於多種表單,在僅接收單一request.POST 物件的情況下確定要處理哪一種表單可能會很棘手。此問題中提出的解決方案涉及使用表單前綴,允許視圖區分錶單。

提供的解決方案建立兩個表單實例,每個預期表單一個,然後檢查 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')
登入後複製

這種方法可以有效地處理單一Django 頁面上的多個表單,確保只處理預期的表單並經過驗證。

以上是如何在單一 Django 頁面上處理多個表單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板