2015-12-04 29 views
2

我需要在我的用戶模型中添加一些字段,我不知道哪個是最佳路徑。是更好的擴展還是替代Django用戶模型?

我的第一個想法是創建一個新的模型與我的領域,如解釋here,但我希望它沿用戶模型創建,它將需要分開處理,這可能是潛在的痛苦,因爲我項目將主要基於Django的休息框架

另一個想法是創建擴展AbstractUser新模式,爲完成here,並將其設置爲AUTH_USER_MODEL,所以我會在某一時刻只管理一個對象

有什麼建議嗎?對於這種情況有沒有最佳做法?

回答

2

這裏討論擴展用戶模型。 https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#auth-custom-user

從我看到的典型情況來看,使用附加字段創建用戶配置文件表,而不是使用信號來偵聽正在創建的任何新用戶對象,以創建具有外鍵關係的用戶配置文件對象auth用戶。這樣你就不會用django重寫任何來自盒子的東西,而只是將用戶配置文件字段擴展到另一個表中。

1

在您自己的「配置文件」模型中,最好使用與用戶模型的OneToOne關係。

  • 這可以讓你使用Django的認證和用戶管理
  • 您的應用在其他項目中重複使用
  • 你會浪費用戶邏輯更短的時間

這可省事的道路如果在某個時候需要不同類型的用戶,或者項目必須重新使用(由您自己或其他人)。

Django的文檔建議不要編寫自己的用戶模型。