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

Cat*_*ton 14 django django-queryset

我有一个外键"父母"的模型

class Item(models.Model):
parent = models.ForeignKey(Parent)
Run Code Online (Sandbox Code Playgroud)

这是FK模型

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

def __unicode__(self):
    return str(self.name)
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行一个查询,获取父项为"xyz"的所有项目,我什么都没得到

Item.objects.filter(parent="xyz")
Run Code Online (Sandbox Code Playgroud)

当我尝试:

Item.objects.filter(parent.name="xyz")
Run Code Online (Sandbox Code Playgroud)

要么:

Item.objects.filter(str(parent)="xyz")
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

SyntaxError: keyword can't be an expression
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

Ste*_*eef 26

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

Item.objects.filter(parent__name="xyz")
Run Code Online (Sandbox Code Playgroud)

Django文档