【发布时间】:2021-03-25 19:00:14
【问题描述】:
我有两个模型,User 和 Company,其中公司可能有多个用户和一个所有者(也是一个用户)。一个用户只能与一个公司关联。现在我的问题是,我应该如何维护任何公司的所有者?因为如果我在 Company 模型中使用任何一对一的关系字段,那么它会给我 circular-dependency 错误,因为我的 User 模型中有 foreign-key 关系字段.
型号如下:
用户模型
class User(BaseMixin, AbstractUser, BlameableMixin):
"""Extends django user with extra optional fields."""
role = models.ManyToManyField(Role)
company = models.ForeignKey(
Company,
related_name='user_company_map',
on_delete=models.SET_NULL,
null=True,
)
designation = models.CharField(max_length=max_length_medium, blank=True, unique=False)
mobile_no = models.CharField(max_length=max_length_medium, blank=False, unique=False)
organization = models.CharField(max_length=max_length_medium, blank=False, unique=False)
公司模式
class Company(BaseMixin, BlameableMixin):
"""Company detail."""
name = models.CharField(max_length=max_length_large, blank=True, unique=False)
code_name = models.CharField(max_length=max_length_large, blank=True, unique=True)
domain = models.CharField(max_length=max_length_large, blank=True)
如上面的代码所示,我在 User 模型上有一个外键字段,它将我的 User 模型连接到 Company 模型。 p>
现在我想要一个字段来帮助我跟踪作为任何特定公司所有者的用户。如果您提供django-orm 查询以获取公司对象及其用户和所有者,这也将非常有帮助。我还想查询一个用户及其相关公司,以及他/她是否是这家公司的所有者。
注意:我希望在 Company 模型中有 owner 字段,但如果根据我的要求它应该在 User 模型中,我不介意。我只是在寻找解决方案。任何建议表示赞赏。谢谢
【问题讨论】:
-
也许这会有所帮助 - stackoverflow.com/questions/30204409/…
标签: python django django-models django-rest-framework django-orm