Je me demande simplement où je peux configurer l'URL pour rediriger après la déconnexion. Je sais que vous pouvez définir l'URL de connexion. Je veux rediriger vers ma page d'accueil.
Moderne Django (2017+?) A un paramètre appelé LOGOUT_REDIRECT_URL
.
Vous n'avez pas besoin d'écraser ou d'envelopper quoi que ce soit.
Selon la documentation, vous pouvez simplement fournir le next_page
argument dans 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 'next' à l'URL de votre 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'
Depuis Django 1.10, vous pouvez définir un LOGOUT_REDIRECT_URL
_ ( voir la documentation )
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 transmettre des paramètres de requête via la balise de template {Djol%? De Django?
Vous pouvez rediriger des utilisateurs n’importe où en utilisant LOGOUT_REDIRECT_URL dans votre fichier setting.py.
LOGOUT_REDIRECT_URL = 'url name to redirect'
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 docs , 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 le répertoire urls.py
:
(r'^management/logout/$', 'Django.contrib.auth.views.logout'),
Et puis dans le template:
<a href="{% url 'Django.contrib.auth.views.logout' %}?next=/">
Log out
</a>
Où le next
, vous pointez sur la bonne URL.
Vous pouvez même utiliser des URL nommées pour votre prochain paramètre:
<a href="{% url 'auth_logout' %}?next={% url 'homepage' %}"> Logout</a>