Django 的 @login_required 装饰器在人们未注册时将他们重定向到 /accounts/login。如何更改此网址?

Posted

技术标签:

【中文标题】Django 的 @login_required 装饰器在人们未注册时将他们重定向到 /accounts/login。如何更改此网址?【英文标题】:The @login_required decorator of Django redirects people to /accounts/login when they aren't registered. How to change this URL? 【发布时间】:2011-06-06 08:30:58 【问题描述】:

我希望它重定向到“/login”而不是“/accounts/login”

有没有可以更改的设置?

【问题讨论】:

【参考方案1】:

LOGIN_URL = '/login' 添加到您的settings.py

请参阅the docs 了解更多信息。

【讨论】:

【参考方案2】:

您还可以执行以下操作:

@login_required(login_url='/login/')

查看文档:https://docs.djangoproject.com/en/dev/topics/auth/default/

【讨论】:

【参考方案3】:

LOGIN_REDIRECT_URL = '/login' 将解决您的问题。 LOGIN_URL = '/login' 只是为了告诉 django '/login' 是你的登录 URL, LOGIN_REDIRECT_URL 会告诉 django 在登录后将用户重定向到哪里。

【讨论】:

以上是关于Django 的 @login_required 装饰器在人们未注册时将他们重定向到 /accounts/login。如何更改此网址?的主要内容,如果未能解决你的问题,请参考以下文章

Django @login_required 用于类视图

Django:使用@login_required 在视图上测试失败

Django:调整@login_required 装饰器

Django @login_required 删除 https

Django中 @login_required用法简介

带有 login_required 装饰器的 Django 3.1 异步视图