J'essaie de rediriger un utilisateur à une URL contenant son nom d'utilisateur (comme http: // domaine / nom d'utilisateur / A >), et essayer de comprendre comment faire cela. J'utilise django.contrib.auth pour ma gestion d'utilisateur, j'ai donc essayé d'utiliser login_redirect_url dans les paramètres suivants: LOGIN_REDIRECT_URL = '/%s/' % request.user.username # <--- fail..
4 Réponses :
Une solution, consiste à rediriger vers une route statique comme '/ userpage /' et avoir qui redirige à la page dynamique finale.
Mais je pense que la vraie solution est de faire une nouvelle vue qui fait ce que vous voulez vraiment . p> http://docs.djangoproject.com/fr/dev/topics/auth/#authentication-in-web-requêtes p> Pour plus d'informations sur la réécriture de la vue. C'est ainsi que les documents disent à remplacer ce genre de chose. P> p>
Je préfère la première suggestion de rediriger de la statique / userpage /. De cette façon, vous pouvez toujours utiliser la vue de connexion de django.contrib.auth.views code>, qui pourrait être plus robuste qu'une vue laminée à la main.
Comme j'essaie de simplifier les URL et de minimiser les redirections, votre solution semble être la voie à suivre. Merci!
Quelle réponse simple et brillante qui résout ma question exacte. J'ai honte de ne pas penser à cela. Profitez de votre point Internet.
Enveloppez la vue authentifiant dans votre propre vue personnalisée et rediriger vers la fois où vous le souhaitez si l'authentification réussie.
<a href="{% url 'login' %}?next={{ request.path }}">sign in</a>
J'aime le "prochain" paramètre URI Meilleur de toutes les réponses ci-dessus +1
avec le urls.py: < / forte> p> vues.py strong> p> django.contrib.auth.views.Contrib.auth.views.LoginView (code>, vous pouvez désormais remplacer simplement
get_success_url code>:
Cela le fait pour moi. Merci.
J'utilise la vue de connexion Django-Two-Two-Factor-Auth, qui fournit des fonctionnalités OTP pour la connexion. Par conséquent, je prolongez de la connexion de deux_factor's loginView.
dans URLs principales.PYRYCLYS.PYCYRY :<p>in vues.py: strong> p>