2014-06-18 50 views
2

我想添加一個自定義字段到已經存在的Django的用戶模型。繼承Django 1.7b4中BaseUser的錯誤

我想默認的用戶模型(包括密碼散列功能)+自定義字段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

回答

5

如果你只是希望自定義字段添加到標準User模式,用戶模式應該從AbstractUser而不是從AbstractBaseUser繼承。

不要忘記設置:

AUTH_USER_MODEL = 'myapp.MyUser' 

https://docs.djangoproject.com/en/dev/topics/auth/customizing/#extending-django-s-default-user

+0

我已經試過這一點。我收到這個錯誤。 'auth.User.groups:(fields.E304)'User.groups'的反向訪問者與'myuser.groups'的反向訪問者發生衝突。 – user3745956

+0

@ user3745956您使用的是正確的遷移嗎?如果沒有,請刪除數據庫並重新開始。 –

+0

我在哪裏添加'AUTH_USER_MODEL ='myapp.MyUser''這一行?您的Django配置設置中的 – user3745956