2015-07-13 29 views
1

我有一個關於爲用戶設計模型的問題。 它是一個更好的方法,如果你: 創建AbstractUser模型,並把所有額外的屬性(如:電話,手機,傳真)模型內部 VS 創建一個名爲用戶配置一個獨立的模型,並使用與會員聯繫起來OneToOneField?AbstractUser屬性vs UserProfile模型

回答

2

答案是在documentation

如果你有Django的用戶模型完全滿意,你只是想 添加一些額外的個人資料信息,你可以簡單地繼承 django.contrib.auth。 models.AbstractUser並添加您的自定義配置文件 字段,雖然我們建議使用單獨的模型,如 「模型設計注意事項」中所述指定自定義用戶模型。 AbstractUser提供默認用戶的完整實現爲 的抽象模型。

1

如果您只是想爲用戶存儲額外的信息,那麼請使用OneToOneField。但是,如果您希望在用戶模型中進行行爲更改(例如,您希望將電子郵件地址或電話號碼用於登錄,而不是用戶名等),則可以從AbstractUser繼承並創建自定義用戶模型。

我的建議是爲了學習目的而使用AbstractUser和AbstractBaseUser,即使你不需要它也可以。