在哪里编写代码来扩展django用户表并捕获用户身份验证细节



我需要扩展django框架提供的用户模型来容纳额外的字段。我从django教程中学到,要做到这一点,最好的选择是有一个单独的表,用于存储与用户个人详细信息相关的信息。

1)编写扩展用户表的代码的最佳位置或最佳文件是哪里?

2)我还想检查用户的状态,例如他是否登录或他属于哪个组,每当请求到达服务器时。通常,当我使用Kohana框架时,我编写一个基类,然后由每个视图扩展,我在before()方法中编写所需的所有代码,Kohana保证在将控制传递给实际方法之前,在每个请求中首先调用该方法。我如何在Django中实现类似的概念?

1)创建一个应用程序,例如accounts,并将您的用户配置文件模型(或创建自定义用户模型)放在models.py文件

2)必须检查views.py中的用户权限。如果你使用函数视图,你可以用下面描述的检查来创建装饰器。还要看看现有的装饰器。如果你使用基于类的视图,你可以创建装饰器或mixins,如下所述。有些应用已经有了一些mixins,例如django-brace

根据Django文档,有两种方法可以做到这一点。扩展现有用户:

如果希望存储与User相关的信息,可以使用到包含字段的模型的一对一关系附加信息。这种一对一模型通常被称为a概要文件模型,因为它可能存储关于一个对象的非认证相关信息网站用户。例如,您可以创建一个Employee模型:

并替换自定义用户模型¶

某些类型的项目可能有身份验证需求Django内置的User模型并不总是合适的。例如,在一些网站上,使用电子邮件地址作为你的地址更有意义标识令牌而不是用户名。

相关内容

最新更新