我已经开始在Django的应用程序中实现身份验证,并且已经使用Django login_required装饰器完成了这项工作。
但是,我注意到这将始终重新路由到deafault登录URL:/accounts/...
这对我来说是不存在的。我一直通过/admin/...
我想这两个用于不同目的(一个用于管理员用户并允许访问管理控制台)但是,我找不到帐户版本的任何视图(与管理员)。我的问题如下:
/accounts/...
和/admin/...
如果使用相同的用户模型有什么区别?
这些/accounts/...
视图是否内置在/ templateable中?如何打开它们?或者我是否需要手动创建每个?
不幸的是,我发现关于这个主题的文档相当混乱,因此我们将非常感谢任何帮助。
答案 0 :(得分:2)
如果您尚未登录,Django会使用LOGIN_URL
来决定重定向到哪个网址。默认情况下,此项设置为'/accounts/login/'
。
如果您使用其他登录网址,则应更新LOGIN_URL
设置。
使用Django管理员登录用户的缺点是,非工作人员将无法使用Django管理员登录。
Django附带authentication views,包括login
视图。如果您想允许非工作人员登录,您应该启用它。
答案 1 :(得分:1)
' / accounts /'只是一个在大多数人处理身份验证时最佳实践的网址。帐户没有内置模板。 ' / accounts /'只是默认放置。
要更改网址以适合您的应用程序网址,请转到 settings.py 文件,然后添加 LOGIN_URL 变量以指定要重定向的身份验证的位置至。在你的情况下,它看起来像这样。
LOGIN_URL = '/admin'
这会将所有未经身份验证的请求重定向到' / admin'