参数存在时,为什么Django 2.1 login_required无法正常工作

时间:2018-11-29 21:38:46

标签: python django django-admin django-urls django-authentication

在urls.py中,我有:

path('/admin/', admin.site.urls),
path('/admin/login', login_required(admin.site.login)),
path('/customlogin/', include('customlogin.urls', namespace='customlogin'))

这将重定向到settings.LOGIN_URL中指定的自定义身份验证视图。

当您转到/admin时,它将重定向到/admin/login/?next=/admin,而不重定向到LOGIN_URL。但是,当您直接进入/admin/login时,一切正常。

注意:这在Django 1.11中正常工作。

1 个答案:

答案 0 :(得分:2)

要匹配管理员登录URL,您的路径应带有斜杠。您还必须将路径移至admin.site.urls上方,以便Django使用修饰后的视图。

path('/admin/login/', login_required(admin.site.login))
path('/admin/', admin.site.urls),