如何获取Django模型中具有ForeignKey字段特定值的所有对象?

如何获取Django模型中具有ForeignKey字段特定值的所有对象?,django,django-queryset,Django,Django Queryset,我有一个外键为“Parent”的模型 这是FK模型 class Parent(models.Model): name = models.CharField(blank=True, max_length=100) def __unicode__(self): return str(self.name) 我正在尝试运行一个查询,该查询获取父项为“xyz”的所有项,但什么也得不到 Item.objects.filter(parent="xyz") 当我尝试时: Item.objects.

我有一个外键为“Parent”的模型

这是FK模型

class Parent(models.Model):
name = models.CharField(blank=True, max_length=100)

def __unicode__(self):
    return str(self.name)
我正在尝试运行一个查询,该查询获取父项为“xyz”的所有项,但什么也得不到

Item.objects.filter(parent="xyz")
当我尝试时:

Item.objects.filter(parent.name="xyz")
或:

我得到一个错误:

SyntaxError: keyword can't be an expression

正确的方法是什么?

您可以在传递给
filter()
的关键字中使用双下划线来访问外键关系中的字段。像这样:

Item.objects.filter(parent__name="xyz")

仅供谷歌未来参考,对于Django的最新版本,您必须在关键字中使用额外的方法。例如,您必须执行
parent\uuuuuuu name\uuuu-exact
,而不是
parent\uuuuuu-name
。卡托的链接还包含其他例子

SyntaxError: keyword can't be an expression
Item.objects.filter(parent__name="xyz")