如何在Django中使用redirect_authenticated_user和extra_context

时间:2017-07-27 04:04:00

标签: python django

我目前正在使用Django v1.11。我想要发生的是,如果经过身份验证的用户访问登录页面,他们将重定向。就我而言,即使他们经过身份验证,他们也可以访问登录页面。

我以前的 url.py ,extra_context的工作原理如下:

url(r'^login/$', auth_views.login, {'extra_context': { 'all_user': User.objects.all() }}, name='login')

然后根据此文档:https://docs.djangoproject.com/en/1.11/topics/auth/default/#django.contrib.auth.views.LoginView

我将登录的urls.py更改为LoginView.as_view(),但我的 registration / login.html 默认模板上的extra_context不再有效。

{% for user in all_user %}
    <option>{{ user.username }}</option>
{% endfor %}

urls.py

url(r'^login/$', auth_views.LoginView.as_view(redirect_authenticated_user=True), {'extra_context': { 'all_user': User.objects.all() }}, name='login')

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

像这样传递extra_content

 url(r'^login/$', auth_views.LoginView.as_view(extra_context= { 'all_user': User.objects.all() },redirect_authenticated_user=True),name='login')