Python 客户与公司之间的关系
我对客户和公司之间的关系有问题 要求如下: 1) 客户可以是许多公司的客户 2) 一家公司可以有很多客户Python 客户与公司之间的关系,python,django,database,model,many-to-many,Python,Django,Database,Model,Many To Many,我对客户和公司之间的关系有问题 要求如下: 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): n
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
关系。但是它应该在公司
模型中还是在客户
模型中
那没关系。多对多关系与一个额外的表存储在数据库中,该表具有两个模型的外键。在您的ManyToManyField
中,您可以为其反向命名关系:
class Company(models.Model):
name = models.CharField(max_length=30)
clients = models.ManyToManyField('User', related_name='companies')
def __str__(self):
return self.name
class User(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
是一个查询集
,用于获取某个用户的所有公司。这根本没有区别,因为Django会自动给关系起一个相反的名字
some_company.clients.all()
some_user.companies.all()