2017-05-02 136 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