gpt4 book ai didi

python - 客户与公司的关系

转载 作者:搜寻专家 更新时间:2023-10-30 23:25:57 25 4
gpt4 key购买 nike

我对客户和公司的关系有意见。

要求是这样的:

1) 一个客户可以是多家公司的客户。

2) 一家公司可以有很多客户。

class Company(models.Model):
name = models.CharField(max_length=30)
users = models.ManyToManyField('User')

def __str__(self):
return self.name


class User(models.Model):
name = models.CharField(max_length=30)

def __str__(self):
return self.name

我读到这应该是一个 ManyToManyField 关系。但是它应该在 Company 模型中还是在 Client 模型中的什么位置?

最佳答案

I read that this should be a ManyToManyField relationship. But where should it be in the Company model or in the Client model?

重要。多对多关系存储在数据库中,其中包含一个额外的表,该表具有两个模型的外键。在您的 ManyToManyField 中,您可以为其反向命名:

class Company(models.Model):
name = models.CharField(max_length=30)
clients = models.ManyToManyField('User'<b>, related_name='companies'</b>)

def __str__(self):
return self.name


class User(models.Model):
name = models.CharField(max_length=30)

def __str__(self):
return self.name

可以双向查询。例如:

some_company.<b>clients</b>.all()

是一个QuerySet,用于获取some_company的所有客户,并且:

some_user.<b>companies</b>.all()

是一个QuerSet,用于获取some_user`的所有公司。完全没有区别,因为 Django 会自动为反向关系命名。

关于python - 客户与公司的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57855936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com