在Django中使用自定义字段扩展用户模型

使用自定义字段扩展用户模型(与Django的身份验证应用程序捆绑)的最佳方法是什么?我也可能希望使用电子邮件作为用户名(用于身份验证)

我已经看到了一些方法,但无法决定哪一种是最好的

Django推荐的最不痛苦的方法是通过OneToOneField(User)属性

扩展现有用户模型

如果希望存储与用户相关的信息,可以使用与包含附加信息字段的模型的一对一关系。此一对一模型通常称为概要文件模型,因为它可能存储有关站点用户的非身份验证相关信息

也就是说,扩展django.contrib.auth.models.User并替换它同样有效

替换自定义用户模型

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

[Ed:紧接着两次警告和一次通知,提到这是非常激烈的。

我绝对不会更改Django源代码树中的实际用户类和/或复制和更改auth模块

发表评论