Ich habe eine Ansicht, die die bestimmte Aufgabe ausführt und zu einer anderen Ansicht zurückkehrt, die hallo.html Vorlage rendert.
%Vor% Nach erfolgreichem Abschluss der ersten Ansicht möchte ich die Nachricht 'Erfolgreich' in overview.html
übergeben. Es gibt viele Weiterleitungen zu success
view. Ich möchte die Nachricht nur übertragen, wenn ich die 1. Ansicht durchführe. Wie kann ich das tun?
Verwenden Sie das Nachrichten-Framework , um Nachrichten zwischen diesen zu senden Seitenanforderungen.
Seien Sie vorsichtig, wenn Sie i18n URLs verwenden! Wenn Sie einen Link wie /whatever/
verwenden, aber Internationalisierung verwenden, wird er auf /en/whatever/
umgeleitet, wodurch die Nachricht in der Anfrage verloren geht. Wenn Sie die Internationalisierung verwenden, übergeben Sie die Sprache immer an die URL:
Kostet mich ein paar Stunden, um das zu verstehen ...
Hinzufügen einer ausführlicheren Antwort.
1: Konfigurieren Sie einen Nachrichtenspeicher in Ihrer settings.py :
%Vor%oder wenn Sie keine Sitzungen verwenden, verwenden Sie CookieStorage:
%Vor%2: Importieren Sie in Ihrer Ansicht django.contrib.messages :
%Vor%3: Legen Sie die Nachrichtendaten vor dem Zurückgeben der HttpResonse fest:
%Vor%ist eine Abkürzung für:
%Vor%Die Nachrichten-Tags ( messages.SUCCESS in diesem Fall) können dann in Ihrer Vorlage verwendet werden, um z. B. eine entsprechende CSS-Klasse hinzuzufügen oder Debug-Meldungen zu verbergen. Django enthält standardmäßig einige, aber wenn Sie dies mit den Standardwarnklassen von Bootstrap verwenden möchten, müssen Sie einige benutzerdefinierte Nachrichten-Tags für die fehlenden.
4: In Ihrer Vorlage können Sie dann die folgenden Meldungen verwenden, wenn Sie Bootstrap-Warnungen verwenden:
%Vor%Tags und Links django