Heim >Backend-Entwicklung >Python-Tutorial >Wie gehe ich mit mehreren Formularen in einer einzigen Django-Ansicht um?

Wie gehe ich mit mehreren Formularen in einer einzigen Django-Ansicht um?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-18 22:24:02754Durchsuche

How to Handle Multiple Forms in a Single Django View?

Verwaltung mehrerer Formulare in Django

In Django kann die Verarbeitung mehrerer Formulare auf einer einzigen Seite eine Herausforderung darstellen. Sehen wir uns zwei praktikable Ansätze zur Bewältigung dieses Szenarios an:

Ansatz 1: Separate URLs für Formulare

Weisen Sie jedem Formular unterschiedliche URLs zu. Dies führt zu separaten Ansichtsfunktionen, die die Übermittlungen verarbeiten. Der Vorteil dieser Methode liegt in ihrer Einfachheit und Codeorganisation.

Ansatz 2: Werte der Schaltfläche „Senden“ nutzen

Wenn Sie die Formulare auf derselben Seite behalten möchten, Sie können sie anhand der Werte der Schaltfläche „Senden“ unterscheiden. Das folgende Code-Snippet demonstriert diesen Ansatz:

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')

In diesem Code sind „bannedphrase“ und „expectedphrase“ die Namen der Absenden-Schaltflächen, während „bannedphraseform“ und „expectedphraseform“ die entsprechenden Formen sind. Indem Sie prüfen, ob diese Schaltflächen in den POST-Daten der Anfrage vorhanden sind, können Sie erkennen, welches Formular übermittelt wurde, und es entsprechend verarbeiten.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit mehreren Formularen in einer einzigen Django-Ansicht um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn