为什么存在参数时 Django 2.1 login_required 不工作

Why doesn't Django 2.1 login_required work when parameter is present

在 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 中工作正常。

要匹配管理员登录 url,您的路径应该有一个尾部斜杠。您还必须将您的路径移动到 admin.site.urls 之上,以便 Django 使用您的修饰视图。

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