Python Django模型关系

Python Django模型关系,python,django,Python,Django,我正在为我的应用程序制作模型,我有一个关于模型之间关系的问题 公司模型有一个或多个办公室。 办公室有一名或多名员工 class Company(models.Model): name = models.CharField(max_length=50) mail = models.EmailField(null=True, blank=True) NIF = models.CharField(max_length=9, null=True, blan

我正在为我的应用程序制作模型,我有一个关于模型之间关系的问题

公司模型有一个或多个办公室。 办公室有一名或多名员工

class Company(models.Model):
        name = models.CharField(max_length=50)
        mail = models.EmailField(null=True, blank=True)
        NIF = models.CharField(max_length=9, null=True, blank=True)
        def __unicode__(self):
                return self.name

class Office(models.Model):
        company = models.ForeignKey(Company)
        name = models.CharField(max_length=50, default='Main')
        direction = models.CharField(max_length=50)
        def __unicode__(self):
                return self.name

class Employee(models.Model):
        company = models.ForeignKey(Company)
        office = models.ForeignKey(Office)
        name = models.CharField(max_length=50)
        mail = models.EmailField(null=True, blank=True)
        def __unicode__(self):
                return self.name

如何在员工、公司和办公室之间建立关系?

员工
中删除
公司
外键

class Employee(models.Model):
    office = models.ForeignKey(Office)
    name = models.CharField(max_length=50)
    mail = models.EmailField(null=True, blank=True)
    def __unicode__(self):
            return self.name
由于
办公室
模型已经与
公司
建立了关系,
员工
办公室
建立了关系,您可以像
员工.Office.Company
一样访问它

employee_one = Employee.objects.get(pk=1)
company_of_employee_one = employee_one.office.company
如果您希望以其他方式访问数据(即获取公司的所有办公室,获取办公室的所有员工),您可以执行以下操作-

company = Company.objects.get(pk=1)
offices = company.office_set.all()
for office in offices:
    employees = office.employee_set.all()

你说的“联系”是什么意思?你能详细说明一下吗?在员工、公司和办公室之间建立一种关系。办公室属于一家公司员工属于同一家公司的办公室。