Wie übermittele ich eine Nachricht von HttpResponseRedirect in Django?

9

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?

    
pynovice 21.02.2013, 09:51
quelle

4 Antworten

11

Verwenden Sie das Nachrichten-Framework , um Nachrichten zwischen diesen zu senden Seitenanforderungen.

    
Daniel Roseman 21.02.2013, 10:13
quelle
1
%Vor%     
Zaman Afzal 18.09.2017 13:51
quelle
1

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:

%Vor%

Kostet mich ein paar Stunden, um das zu verstehen ...

    
Özer S. 25.09.2017 19:57
quelle
0

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%     
Andreas Bergström 22.03.2018 09:42
quelle

Tags und Links