【问题标题】:How can I get all the objects in a Django model that have a specific value for a ForeignKey field?如何获取 Django 模型中对 ForeignKey 字段具有特定值的所有对象?
【发布时间】:2010-11-08 08:25:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: django django-queryset


    【解决方案1】:

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

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

    Django documentation

    【讨论】:

      【解决方案2】:
      【解决方案3】:

      仅供 Google 员工将来参考,对于最新版本的 Django,您必须在关键字中使用附加方法。例如,您必须使用parent__name__exact 而不是parent__name。 Cato 的链接包含其他示例。

      【讨论】:

        猜你喜欢
        • 2016-03-15
        • 2017-08-06
        • 2016-01-14
        • 2020-07-23
        • 1970-01-01
        • 2019-01-25
        • 1970-01-01
        • 2014-11-10
        • 2022-12-01
        相关资源
        最近更新 更多