Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用一对一关系实现一对多关系,无循环依赖_Python_Django_Django Models_Django Rest Framework_Django Orm - Fatal编程技术网

Python 使用一对一关系实现一对多关系,无循环依赖

Python 使用一对一关系实现一对多关系,无循环依赖,python,django,django-models,django-rest-framework,django-orm,Python,Django,Django Models,Django Rest Framework,Django Orm,我有两种模式,用户和公司,其中一家公司可能有多个用户和一个所有者(也是一个用户)。一个用户只能与一个公司关联。现在我的问题是,我应该如何维护任何公司的所有者?因为如果我在公司模型中使用任何一对一关系字段,那么它将给我循环依赖关系错误,因为我在用户模型中有外键关系字段。 模型如下所示: 用户模型 class User(BaseMixin, AbstractUser, BlameableMixin): """Extends django user with ex

我有两种模式,用户公司,其中一家公司可能有多个用户和一个所有者(也是一个用户)。一个用户只能与一个公司关联。现在我的问题是,我应该如何维护任何公司的所有者?因为如果我在公司模型中使用任何一对一关系字段,那么它将给我
循环依赖关系
错误,因为我在用户模型中有
外键
关系字段。
模型如下所示:

用户模型

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)
如上面代码所示,我在用户模型上有一个外键字段,它将我的用户模型连接到公司模型

现在,我想有一个领域,将帮助我保持跟踪的用户谁是任何特定公司的所有者。如果您提供
django orm
查询,以获取公司对象及其用户和所有者,这也将非常有用。我还想查询与其相关公司的用户,以及他/她是否是该公司的所有者


注意:我希望在公司模型中有owner字段,但如果根据我的要求,它应该在用户模型中,我不会介意。我只是在寻找解决办法。如有任何建议,我们将不胜感激。感谢

Django允许您将
ForeignKey
to
参数指定为字符串(),这将使您能够在Django ORM中创建关系

类公司(BaseMixin,可归咎于类公司):
“”“公司详细信息。”“”
name=models.CharField(max\u length=max\u length\u large,blank=True,unique=False)
code\u name=models.CharField(max\u length=max\u length\u large,blank=True,unique=True)
domain=models.CharField(max\u length=max\u length\u large,blank=True)
owner=models.OneToOne(“用户”,相关名称=“所有者”)
然后,您可以直接从公司对象
公司对象访问所有者。所有者
。通过
user\u object.company
访问特定用户的公司。您还可以通过
user\u对象访问用户拥有的公司。
的所有者\u

这可能会有所帮助-