首頁 >後端開發 >Python教學 >如何在 Django 中處理單一頁面上的多個表單?

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

Linda Hamilton
Linda Hamilton原創
2024-11-28 19:43:12406瀏覽

How to Handle Multiple Forms on a Single Page in Django?

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

在 Django 中,處理單一頁面上的多個表單需要仔細考慮。處理單一表單的典型方法,如下例所示:

if request.method == 'POST':
    form = AuthorForm(request.POST,)
    if form.is_valid():
        form.save()
        # do something.
else:
    form = AuthorForm()

在處理多個表單時變得不夠。為了正確解決這種情況,視圖必須確定提交的是哪個表單。

區分錶單提交

一種方法是為每個表單包含唯一的提交按鈕值。透過解析 POST 數據,視圖可以識別點擊的提交按鈕並處理相應的表單。

使用提交按鈕值實現

例如,考慮兩個帶有提交按鈕的名為 Expectedphraseform 和 Bannedphraseform 的表單分別命名為預期短語和禁止短語。以下程式碼片段說明如何使用提交按鈕值處理多個表單:

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 中處理單一頁面上的多個表單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn