提问人:Cato Johnston 提问时间:7/6/2009 最后编辑:Paul D. WaiteCato Johnston 更新时间:5/23/2011 访问量:14108
如何获取 Django 模型中具有 ForeignKey 字段特定值的所有对象?
How can I get all the objects in a Django model that have a specific value for a ForeignKey field?
问:
我有一个外键为“Parent”的模型
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
正确的方法是什么?
答:
26赞
Steef
7/6/2009
#1
您可以在传递给的关键字中使用双下划线来访问外键关系中的字段。喜欢这个:filter()
Item.objects.filter(parent__name="xyz")
2赞
Cato Johnston
7/6/2009
#2
http://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships
1赞
darth happyface
5/23/2011
#3
仅供 Google 员工将来参考,在最新版本的 Django 中,您必须在关键字中使用额外的方法。例如,而不是你必须做.Cato 的链接包含其他示例。parent__name
parent__name__exact
评论