使用外键字段查询Django ORM

时间:2018-04-08 00:27:46

标签: django

我在使用Django ORM查询以检索特定信息时遇到问题。我有三个模型都通过外键链接,这些是主机,组和组织。因此,每个主机都属于一个组,这些组属于一个组织。我需要获取属于名为“Y”的特定组织的所有主机的查询集。下面是我的model.py,任何人都可以帮我制定一个能实现这个目标的查询集吗?还是指出我正确的方向来解决这个问题?

主机

class Host(models.Model):
host_name = models.CharField(max_length=120, blank=False, unique=True)
url = models.CharField(max_length=120, blank=False, unique=True)
group = models.ForeignKey(Group, on_delete=models.CASCADE)
slug = models.SlugField(blank=True, null=True)

def __str__(self):
    return self.host_name

class Group(models.Model):
org_name = models.ForeignKey(Organization, on_delete=models.CASCADE)
group_name = models.CharField(max_length=120, blank=False, unique=True)


def __str__(self):
    return self.group_name

组织

class Organization(models.Model):
org_name = models.CharField(max_length=120, blank=False, unique=True)
org_code = models.CharField(max_length=120, blank=False, unique=True, default=GenerateOrganozationCode)

def __str__(self):
    return self.org_name

1 个答案:

答案 0 :(得分:1)

host_queryset = Host.objects.filter(group__org_name__org_name='Y')

有关更多详细信息和示例,请参阅official django doc