Python 3.6/ Django1.10 @login_required 装饰器重定向到缺少“/”的 link

Python 3.6/ Django1.10 @login_required decorator redirects to link with missing "/"

我在我的项目 Django 1.10 上使用装饰器 login_required Python 3.6.It 重定向到“http://127.0.0.1:8000/accounts/login?next=/profile/”这个 link 但是抛出一个URL 错误。
而当我在登录后用这个“http://127.0.0.1:8000/accounts/login/?next=/profile/”link手动修改上面的link和“/”时,它工作正常。所以我认为这是 unicode“/”的问题,它在重定向时不会呈现。

如何在 "login" 之后渲染这个“/”?

确保您的 LOGIN_URL 设置包含尾部斜线:

LOGIN_URL = '/accounts/login/'

或者,您可以使用 url 模式名称。这样做的好处是您不必在设置中对登录名进行硬编码url。

LOGIN_URL = 'account_login'

如果您在使用 login_required 装饰器时指定 login_url,则需要确保在此处包含尾部斜线。

@login_required(login_url='/accounts/login/')
def my_view(request):
    ...