使用django,假设我有模型类A和B,代表不同类型的公司。每个公司可能有多个与之关联的用户。显然我想使用django的User模型,获取登录等优点。我该怎么做呢?我是否会添加一个具有两个外键的UserProfile,一个到A,一个到B(非空的那个指向用户所在的公司)?或者还有另一种方式吗?
谢谢!
答案 0 :(得分:1)
为什么你只为公司上一堂课?这将使你的系统变得更加简单。
然后,您可以在公司内部使用特定字段来确定它是A类型还是B类型(无论如何都有区别?)
答案 1 :(得分:1)
使用继承:使用公共字段为Company定义一个超类,然后继承该类并添加ClassACompany和ClassBCompany所需的东西。
这样,UserProfile可以拥有公司的外键。如果您需要从公司到特定类型的公司,您可以按照in the docs所述进行操作。
答案 2 :(得分:0)
如果你真的必须在公司和公司内部有不同的领域,那么你可以让它们都来自你的ForeignKey将指向的公共公司类。
答案 3 :(得分:0)
您需要引用公司模型,如果需要,可以使用CompanyA和CompanyB继承公司。为简单起见,您的公司类可能具有type
属性,可能包含A
和B
个值,那么您可以避免使用子类化。