Django – 过滤外键属性

我试图根据外键的特定字段的值过滤Django中的表。

例如,我有两个模型 – 项目和资产,项目有一个name字段,每个资产都有一个ForeignKey(Project)字段。 我想根据相关项目的名称过滤我的资产列表。

目前我正在执行两个查询:

 project_list = Project.objects.filter(name__contains="Foo") asset_list = Asset.objects.filter( desc__contains=filter, project__in=project_list).order_by('desc') 

我想知道是否有一种方法来指定在主查询中的这种过滤?

Asset.objects.filter( project__name__contains="Foo" )

这是因为queryset-refactor分支在1.0之前版本。 门票4088暴露了这个问题。 这应该工作:

 Asset.objects.filter( desc__contains=filter, project__name__contains="Foo").order_by("desc") 

Django多对一文档包含使用Model API的以下外键的其他示例。