Je me demande simplement où je peux définir l'URL vers laquelle rediriger après la déconnexion. Je sais que vous pouvez définir l'URL de connexion. Je souhaite rediriger vers ma page d'accueil.
Réponses:
Modern Django (2017+?) A un paramètre appelé LOGOUT_REDIRECT_URL
.
Vous n'avez pas besoin d'écraser ou d'encapsuler quoi que ce soit.
Selon la documentation, vous pouvez simplement fournir l' next_page
argument à la vue de déconnexion.
https://docs.djangoproject.com/en/dev/topics/auth/default/#django.contrib.auth.views.logout
(r'^logout/$', 'django.contrib.auth.views.logout',
{'next_page': '/successfully_logged_out/'})
Un moyen plus simple:
Ajoutez le paramètre «suivant» à votre URL de demande de déconnexion. Par exemple:
<a href="{% url 'auth_logout' %}?next=/path_to_the_page"> Logout</a>
Ensuite, la vue de déconnexion fera l'affaire pour vous.
Pour la redirection après connexion, vous pouvez simplement le définir dans settings.py:
LOGIN_REDIRECT_URL = '/path_to_the_page'
LOGIN_URL = '/path_to_the_page'
base.html
et oublier ça. : D (J'utilise Django vintage sur Debian Jessie: S donc les nouveaux paramètres ne sont pas disponibles.)
Depuis Django 1.10, vous pouvez définir un LOGOUT_REDIRECT_URL
( voir la documentation )
Vous pouvez rediriger l'utilisateur n'importe où en utilisant LOGOUT_REDIRECT_URL dans votre fichier setting.py
LOGOUT_REDIRECT_URL = 'url name to redirect'
Rediriger vers la page actuelle
<a href="{% url 'logout' %}?next={{ request.path | urlencode }}">{% trans "Logout" %}</a>
Testé dans Django 1.9.
Voir aussi: Est-il possible de passer des paramètres de requête via la balise template {% url%} de Django?
Dans votre vue de déconnexion, après avoir déconnecté l'utilisateur pour de bon, renvoyez HttpResponseRedirect (url). S'il vous plaît voir ici pour plus de détails .
À partir de la documentation, vous pouvez écrire votre propre vue de déconnexion (qui peut être simplement un simple wrapper) en remplaçant la page «suivante».
Si vous souhaitez définir l'URL de redirection au niveau du client, vous pouvez le faire dans urls.py
:
(r'^management/logout/$', 'django.contrib.auth.views.logout'),
Et puis dans le modèle:
<a href="{% url 'django.contrib.auth.views.logout' %}?next=/">
Log out
</a>
Où le next
, vous pointez vers la bonne URL.
Si vous avez défini vos propres URL (et non importé des URL d'authentification génériques) et que vous utilisez les vues d'authentification standard de django, vous pouvez simplement les ajouter (template_name = 'example.html') dans le chemin.
path('logout/',auth_views.LogoutView.as_view(template_name='homepage.html'),name="logout")
ajoutez ceci dans votre fichier de project setting.py
LOGOUT_REDIRECT_URL = '/'
vous pouvez écrire votre URL entre '' J'utilise ma page d'index pour la redirection par défaut de déconnexion