Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.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_Database_Model_Many To Many - Fatal编程技术网

Python 客户与公司之间的关系

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

我对客户和公司之间的关系有问题

要求如下:

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
关系。但是它应该在
公司
模型中还是在
客户
模型中

那没关系。多对多关系与一个额外的表存储在数据库中,该表具有两个模型的外键。在您的
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()