如何为 3 个模型映射外键关系 Django

How to map ForeignKey Relationship Django for 3 Models

我计划使用 3 个模型编写一个查询来获取数据。

Modle 1: Emp

class Emp(models.Model):
    empID = models.AutoField(primary_key=True)
    empName = models.CharField(max_length=70, blank=False, default='')
    empCode = models.CharField(max_length=10, blank=False, default='')
    empDesc = models.CharField(max_length=200)

    class Meta:
        db_table = 'empolyee'

    def __str__(self):
    return self.empName

Model 2: Dep

class Dep(models.Model):
    depID = models.ForeignKey(primary_key=True)
    depName = models.CharField(max_length=200)
    Emp = models.ForeignKey(EMP, on_delete=models.CASCADE, null=True)
   
    class Meta:
        db_table = 'departmen

Model 3: account

class Account(models.Model):
    accountID = models.AutoField(primary_key=True)
    accountName = models.CharField(max_length=200)
    Emp = models.ForeignKey(Emp, on_delete=models.CASCADE, null=True)
    field = models.ForeignKey(Dep, on_delete=models.CASCADE, null=True)
    
    class Meta:
        db_table = 'accounts'

我需要执行以下本机查询 (SQL):

select em.empName as fromMaster, em1.empName as toMaster from dep dp
join emp em on dp.depID = em.empID 
join account ac on dp.depID = ac.field
join emp em1 on ac.empID = em1.empID
where dep.empID ='1'

但是我尝试了下面的例子,但是我得到了不同的查询。

dataReceived = account.objects.select_related(
                'field __Emp ', 'Emp ').filter(Emp='1')

你能帮帮我吗,如何实现这个。

提前致谢!!!!

尝试以下查询:

dataReceived =  Account.objects.select_related('Emp').select_related('field __Emp').filter(field__Emp__Dep=1(user defined field input id))