django-Anzeige Meldung nach dem POST-Formular Einreichen
Ich habe eine Seite mit einem Formular, dass eine Maßnahme gesetzt, um einige url.
ich.e davon ausgehen, auf dieser Seite url ist /form_url/
:
..
Den Blick in /submit_url/
kümmern sich um die Formular-Daten. Nach diesem will ich zurückkehren der gleichen Seite das Formular mit einer Erfolgsmeldung.
In der Ansicht, die Pflege für das POST-Formular, ich benutze HttpResponseRedirect
, um "löschen" werden die Formulardaten aus dem browser.
Aber in dieser Art kann ich nicht anzeigen einer Nachricht in der form-Seite, es sei denn, ich mache so etwas wie:
return HttpResponseRedirect("/form_url/?success=1")
und dann prüfen, ob diese parameter in der Vorlage. Ich weiß nicht, wie diese Art, denn wenn der Benutzer die Seite aktualisiert, wird er noch die Erfolgsmeldung.
Habe ich bemerkt, dass im django-admin-Website, das löschen/hinzufügen von Objekten verwenden, redirect nach POST zu senden, und zeigt noch eine Erfolgsmeldung irgendwie.
Wie?
Hab ich schon kurz gesehen, django "messaging" - app, sondern ich möchte wissen, wie es funktioniert erstmal..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem django-admin verwendet
django.contrib.messages
ist, verwenden Sie es so:Ihrer Ansicht:
Und in Ihre Vorlagen:
Django-messages-framework speichert die Nachrichten in der session oder cookie (es hängt von der Speicher-backend).
Brauchen Sie nicht zu tun, eine Weiterleitung zum löschen der Formular-Daten. Alles, was Sie tun müssen, ist die re-instanziieren, form:
Wenn der Benutzer die Seite aktualisiert, Sie gehen, um zu initiieren eine GET-Anforderung, und
success
wirdFalse
. So oder so, die form wird losgebunden, der auf eine GET-oder auf einen erfolgreichen POST.Wenn Sie nutzen Sie die Nachrichten-framework, du musst noch hinzufügen einer bedingten in der Vorlage zum anzeigen der Meldungen, wenn Sie existieren oder nicht.
https://docs.djangoproject.com/en/1.11/ref/contrib/messages/