0

アプリのモデルを作成していますが、モデルの関係について質問があります。

Company モデルには、1 つ以上のオフィスがあります。また、オフィスには 1 人以上の従業員がいます。

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

従業員と会社やオフィスとの関係をどのように作ることができますか?

4

1 に答える 1

2

companyから外部キーを削除しますEmployee

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関係があるためOffice、次のようにアクセスできますemployee.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()
于 2013-03-19T22:01:03.583 に答える