Django redirect_authenticated_user: True 不工作
Django redirect_authenticated_user: True not working
我正在用 Django 1.11 编写应用程序。
myapp/urls.py
模式看起来像
from django.conf.urls import url, include
from django.contrib import admin
from django.contrib.auth.views import LoginView
urlpatterns = [
url(r'^login/$', LoginView.as_view(), {'redirect_authenticated_user': True}),
url('^', include('django.contrib.auth.urls')),
url('^', include('pages.urls')),
url(r'^pages/', include('pages.urls')),
url(r'^search/', include('search.urls')),
url(r'^admin/', admin.site.urls),
]
我希望登录用户在尝试访问 /login
页面时被重定向。为此,我按照文档 here
中的规定将 redirect_authenticated_user
设置为 True
但是,当我在成功登录后访问 /login
时,它没有重定向。
将redirect_authenticated_user
传递给as_view()
:
urlpatterns = [
url(r'^login/$', LoginView.as_view(redirect_authenticated_user=True)),
Any arguments passed to as_view() will override attributes set on the class. In this example, we set template_name on the TemplateView. A similar overriding pattern can be used for the url attribute on RedirectView.
对于任何使用 Django 2 进行研究的人,您实际上会使用类似于 OP 的 kwargs
。
from django.contrib.auth import views as auth_views
urlpatterns = [
path('login/', auth_views.login, {'redirect_authenticated_user': True}, name='login'),
]
https://docs.djangoproject.com/en/2.0/topics/http/urls/#views-extra-options
我正在用 Django 1.11 编写应用程序。
myapp/urls.py
模式看起来像
from django.conf.urls import url, include
from django.contrib import admin
from django.contrib.auth.views import LoginView
urlpatterns = [
url(r'^login/$', LoginView.as_view(), {'redirect_authenticated_user': True}),
url('^', include('django.contrib.auth.urls')),
url('^', include('pages.urls')),
url(r'^pages/', include('pages.urls')),
url(r'^search/', include('search.urls')),
url(r'^admin/', admin.site.urls),
]
我希望登录用户在尝试访问 /login
页面时被重定向。为此,我按照文档 here
redirect_authenticated_user
设置为 True
但是,当我在成功登录后访问 /login
时,它没有重定向。
将redirect_authenticated_user
传递给as_view()
:
urlpatterns = [
url(r'^login/$', LoginView.as_view(redirect_authenticated_user=True)),
Any arguments passed to as_view() will override attributes set on the class. In this example, we set template_name on the TemplateView. A similar overriding pattern can be used for the url attribute on RedirectView.
对于任何使用 Django 2 进行研究的人,您实际上会使用类似于 OP 的 kwargs
。
from django.contrib.auth import views as auth_views
urlpatterns = [
path('login/', auth_views.login, {'redirect_authenticated_user': True}, name='login'),
]
https://docs.djangoproject.com/en/2.0/topics/http/urls/#views-extra-options