/ account / vs / admin / views上的混淆(任何内置的创建方式)

时间:2016-07-24 23:25:29

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

我已经开始在Django的应用程序中实现身份验证,并且已经使用Django login_required装饰器完成了这项工作。

但是,我注意到这将始终重新路由到deafault登录URL:/accounts/...这对我来说是不存在的。我一直通过/admin/...

进行所有身份验证

我想这两个用于不同目的(一个用于管理员用户并允许访问管理控制台)但是,我找不到帐户版本的任何视图(与管理员)。我的问题如下:

  1. /accounts/.../admin/...如果使用相同的用户模型有什么区别?

  2. 这些/accounts/...视图是否内置在/ templateable中?如何打开它们?或者我是否需要手动创建每个?

  3. 不幸的是,我发现关于这个主题的文档相当混乱,因此我们将非常感谢任何帮助。

2 个答案:

答案 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'