Skip to main content
 首页 » 编程设计

python之如何在 Django 中使用带有 extra_context 的 redirect_authenticated_user

2025年02月15日20java哥

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

我之前的 extra_context 工作的 url.py 是这样的:

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() 但 extra_context 在我的 registration/login.html 默认模板上不再起作用。

{% 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') 

我错过了什么吗?

请您参考如下方法:

像这样传递 extra_content

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