Heim >Backend-Entwicklung >Python-Tutorial >Wie gehe ich mit mehreren Formularen auf einer einzelnen Django-Seite um?

Wie gehe ich mit mehreren Formularen auf einer einzelnen Django-Seite um?

Susan Sarandon
Susan SarandonOriginal
2024-11-30 03:49:18908Durchsuche

How to Handle Multiple Forms on a Single Django Page?

Umgang mit mehreren Formularen auf einer einzelnen Seite in Django

Wenn Sie mit mehreren Formularen auf einer einzigen Django-Vorlage arbeiten, ist es wichtig, das Formular zu bestimmen eingereicht wird, um die gleichzeitige Verarbeitung beider Formulare zu vermeiden. Die größte Herausforderung besteht darin, das gewünschte Formular innerhalb der POST-Daten zu identifizieren.

Mehrere Formularoptionen

Es gibt mehrere Ansätze, dieses Problem anzugehen:

  • Separate URLs: Weisen Sie jedem Formular unterschiedliche URLs zu. Dies führt dazu, dass mehrere Ansichtsfunktionen die Formulare einzeln verarbeiten.
  • Werte der Schaltfläche „Senden“: Untersuchen Sie die Werte der Schaltfläche „Senden“ in den POST-Daten, um festzustellen, welche Schaltfläche verwendet wurde.

Beispiellösung

Stellen Sie sich das folgende Szenario vor, in dem wir zwei Formulare auf einer Seite haben: erwartete Phrasenform und verbotene Phrasenform. Um ihre Übermittlung abzuwickeln, verwenden wir den folgenden Code:

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 Beispiel überprüfen wir die POST-Daten auf die Werte der Schaltfläche „Senden“. Basierend auf dem Wert instanziieren wir das entsprechende Formular und versuchen es zu speichern. Das Präfix stellt sicher, dass die übermittelten Daten korrekt an das Formular gebunden werden.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit mehreren Formularen auf einer einzelnen Django-Seite 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