Django模型的“部分继承”

时间:2014-03-10 10:55:31

标签: python django inheritance

我知道部分继承它是不可能的。 我需要为我的Django应用程序创建一个用户模型,因为我想使用Django中定义的User类。但我不需要用户名字段,该字段设置为 required

假设我从User继承到MyUser。是否可以删除MyUser中的用户名属性。即del MyUser.username? 或者有人可以提出其他方法来做到这一点吗?

2 个答案:

答案 0 :(得分:2)

AbstractBaseUser class专门针对此方案制作。继承此类并定义您自己的字段,并确保将USERNAME_FIELD属性设置为您的电子邮件字段。

答案 1 :(得分:1)

用户名字段是必填字段 - 否则用户无法登录。

如果您想要一个电子邮件地址作为用户名 - 从django 1.5开始,您可以创建自己的custom user model,它就像django附带的默认模型一样。

在此自定义用户模型中,将USERNAME_FIELD属性设置为要用于用户名的列的名称。此列必须是唯一的。

您需要做很多工作,实际上这应该在项目开始时完成,因为这些更改需要数据库更新。

您应该read the documentation开始使用。