【问题标题】:Query Django ORM with foreign key fields使用外键字段查询 Django ORM
【发布时间】:2018-04-08 00:27:45
【问题描述】:

我在使用 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

【问题讨论】:

    标签: django


    【解决方案1】:
    host_queryset = Host.objects.filter(group__org_name__org_name='Y')
    

    更多详细信息和示例,请参考official django doc

    【讨论】:

    • 谢谢,这很好用!比我预期的要简单得多。
    猜你喜欢
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多