为了在 Django 1.5.x 中创建新的用户模型,有两种方法:
- 继承
AbstractUser
类,这是您获得的默认用户模型,这样您就可以使用您想要的任何属性对其进行扩展。但是,如果您想删除任何字段,这在技术上是可行的,但不推荐;即使可以做到,我相信它也违反了 OOP 原则。所以如果你想改变当前的用户模型,还有第二种方法。 - Inherit
AbstractBaseUser
,通过查看代码提供了非常基本的功能。你会错过权限、配置文件检索和绝对 url 构造的所有优点,除非你从默认的 Django 用户模型中复制它。
以上是我对情况的理解。如果我错了,请纠正我,但这是否意味着如果我想简单地从username
模型中删除该字段,因为我根本不需要它,我必须复制粘贴框架中提供的模型代码并继承自AbstractBaseUser
和PermissionsMixin
? 对于这么简单的事情,这种方法对我来说看起来不是很漂亮,而且看起来有点奇怪,因为我很确定自定义用户模型的引入主要是因为email
字段作为用户标识符而不是作为用户标识符的流行用例username
.
请提出您的想法(和更正)。