Ich möchte Benutzer auf eine bestimmte Website umleiten example.com
nach logout
django: umleiten Ausgabe Abmelde functionlaity
Ich habe folgenden Code hinzugefügt App urls.py
urlpatterns = [
url(r'^logout', 'django.contrib.auth.views.logout', {'next_page': 'https://www.example.com/'}),
]
Aber ich bin immer einen Fehler django.core.urlresolvers.NoReverseMatch: Reverse for 'logout' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Ich habe eine Lösung gefunden, die nach dem Abmelden auf eine beliebige Ansicht umgeleitet werden kann, aber wie kann ich auf eine andere Website umleiten?
django version 1.9
Wie pro Vorschlag hier ist neuer Code eine andere Website von benutzerdefinierten Ansicht ..
views.py
#call for logout
return HttpResponseRedirect('/myapp/logout')
urls.py
url(r'^logout', views.custom_logout, name='logout'),
zu umleiten hinzugefügt views.py
def custom_logout(request):
request.session.flush()
redirect('https://www.example.com/')
Ich erhalte Fehler Reload the page to get source for: http://127.0.0.1:8000/myapp/logout
Meine Antwort erklärt, wie man den "NoReverseMatch" Fehler beheben kann, aber es hilft Ihnen nicht, auf eine andere Website umzuleiten. Die Weiterleitung an einen anderen Host kann ein Sicherheitsrisiko darstellen. Der Django [Logout-View-Code] (https://github.com/django/django/blob/stable/1.10.x/django/contrib/auth/views.py#L122) verhindert spezifisch, dass "next_url" ein anderer Host ist . Wenn Sie sich abmelden und dann auf eine andere Website umleiten möchten, müssen Sie Ihre eigene Ansicht schreiben, die dies tut. – Alasdair
@Alasdair Ok. Können Sie mir bitte in diesem Fall erklären, eine andere Website von der benutzerdefinierten Ansicht umzuleiten? – Shri
Bitte überprüfen Sie die Bearbeitung in Frage – Shri