我有一个外键为“父”的模型
class Item(models.Model):
parent = models.ForeignKey(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")
或者:
Item.objects.filter(str(parent)="xyz")
我收到错误:
SyntaxError: keyword can't be an expression
这样做的正确方法是什么?
答案 0 :(得分:26)
您可以在传递给filter()
的关键字中使用双下划线来访问外键关系中的字段。像这样:
Item.objects.filter(parent__name="xyz")
答案 1 :(得分:2)
答案 2 :(得分:1)
仅供将来参考Google员工使用最新版本的Django,您必须在关键字中使用其他方法。例如,您必须parent__name
而不是parent__name__exact
。 Cato的链接包含其他示例。