我怎样才能在有一个ForeignKey字段中的特定值的Django模型中的所有对象?

StackOverflow https://stackoverflow.com/questions/1086341

  •  23-08-2019
  •  | 
  •  

我有一个“父”

的外键的模式
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

什么是做到这一点的正确方法?

有帮助吗?

解决方案

您可以在传递给filter()接入领域外键关系中的关键字使用双下划线。像这样:

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

Django文档

其他提示

就为了让Google未来的参考,与最新版本的Django的你在关键词使用的另一种方法。例如,而不是parent__name你要做parent__name__exact。卡托的链接包含其它实例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top