为了在Django 1.5.x中创建一个新的用户模型,有两种方法:
- 继承
AbstractUser
类,这是您获得的默认用户模型,您可以使用它来扩展任何属性。但是,如果您想要删除任何字段,则从技术上讲虽然可行,但不建议;即使可以做到,我认为这违反了OOP原则。因此,如果您想要更改当前用户模型,则有第二种方法。 - 继承
AbstractBaseUser
,通过查看代码提供非常基本的功能。除非您从默认的Django用户模型中复制它们,否则您将错过所有权限、配置文件检索和绝对URL构造的好处。
username
字段,因为我根本不需要它,我必须复制粘贴框架提供的模型代码,并继承AbstractBaseUser
和PermissionsMixin
吗?对于这么简单的事情,这种方法看起来并不美观,而且看起来有些奇怪,因为我非常确定自定义用户模型主要是因为将email
字段作为用户标识符的流行用例而引入的,而不是username
。请您发表您的想法(和更正)。