使用自定义字段扩展用户模型(与Django的身份验证应用程序捆绑)的最佳方法是什么?我也可能希望使用电子邮件作为用户名(用于身份验证)
我已经看到了一些方法,但无法决定哪一种是最好的
Django推荐的最不痛苦的方法是通过OneToOneField(User)属性
扩展现有用户模型
如果希望存储与
用户相关的信息,可以使用与包含附加信息字段的模型的一对一关系。此一对一模型通常称为概要文件模型,因为它可能存储有关站点用户的非身份验证相关信息
也就是说,扩展django.contrib.auth.models.User并替换它同样有效
替换自定义用户模型
某些类型的项目可能有身份验证需求,Django内置的
用户模型并不总是适合这些需求。例如,在某些网站上,使用电子邮件地址作为身份标识而不是用户名更有意义[Ed:紧接着两次警告和一次通知,提到这是非常激烈的。
我绝对不会更改Django源代码树中的实际用户类和/或复制和更改auth模块