在Django 1.7b4中继承BaseUser出错
我想在已经存在的Django用户模型上添加一个自定义字段。
我希望保留默认用户模型的所有字段(包括密码加密的功能),再加上一个自定义字段 has_car
,所以我做了...
class MyUser(AbstractBaseUser):
has_car = models.BooleanField(default=False)
然后在管理面板中注册 admin.site.register(MyUser)
但是当我尝试在管理面板中打开这个模型时,我遇到了这个错误。
OperationalError at /admin/myapp/myuser/
(1054, "Unknown column 'myapp_myuser.id' in 'field list'")
我不确定这是mysqldb的错误还是别的什么?
我知道可以使用OneToOne或ForeignKey字段,但我只是想扩展用户模型。再次说明,我使用的是django==1.7b4 + Mysql。
1 个回答
5
如果你只是想在标准的 User
模型中添加一些自定义字段,那么你的用户模型应该从 AbstractUser
继承,而不是从 AbstractBaseUser
继承。
别忘了设置:
AUTH_USER_MODEL = 'myapp.MyUser'
https://docs.djangoproject.com/en/dev/topics/auth/customizing/#extending-django-s-default-user