2017-05-02 190 views
0

我是Django的新手,現在正在通過某個項目上的某些模型進行工作。
是否有一個體面的方式來設置以下內容?Django模型:創建子類型

使用綁定到auth_user模型(UserAccount)的模型,我提示用戶選擇他們擁有的帳戶類型(例如:供應商或買方)。

這部分工作正常......但我想根據他們的帳戶類型建立網站體驗。我將如何根據該選項創建VendorProfile或BuyerProfile模型(使用不同的數據)?

我可能會分析這個,但基本上我不希望任何配置文件鏈接到這兩種類型的數據。那是我應該用視圖來控制的東西,還是有一種鎖定我的模型並防止重複信息的好方法?如果您認爲這個內容太寬泛,請告訴我,但我仍然處於概念層面。

所以:

AUTH_USER模型

UserAccount模型:
用戶:一對一(用戶)
ACCOUNT_TYPE:(?) 'V' 或 'B'

VendorProfile
用戶:一對一(UserAccount其中type ='v')?
公司名稱:
廠商代碼:

BuyerProfile
用戶(?):一對一的(UserAccount其中type = 'B')?
最喜歡的顏色:
寵物的名字:

+0

檢查這個問題:http://stackoverflow.com/questions/16655097/django-abstract-models-versus-regular-inheritance – Mojimi

回答

0

是的,你可以做到這一點。因爲你需要在django的auth表中改變一個小東西,那就是你需要在V或者B存儲的地方添加一列account_type。希望你能找到它如何去做。

接下來是爲供應商和買方創建2個模型。使用用戶表創建一個onetoonefield用於存儲用戶的id,在此模型中保留要存儲的供應商或買方的額外信息。

希望它有助於

+0

好吧,這可能工作@Exprator。現在,我可以在什麼層次上將用戶帳戶分類爲供應商和買方模型?這是通過視圖完成的,還是可以在模型層面完成......如果這是有道理的? – ThatCampbellKid

+0

tweek models.py中的用戶模型並創建其他兩個模型。進行遷移,然後根據結果,您需要在view.py中執行任務。 就像你想要一個帳戶類型爲供應商的用戶一樣。 User.objects.filter(account_type ='the_one_you_want',pk = the_id) – Exprator

+0

太棒了!我想我可能會使用視圖,感謝提示@Exprator – ThatCampbellKid