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

Mary-Kate Olsen
Freigeben: 2024-11-18 22:24:02
Original
694 Leute haben es durchsucht

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')
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage