【发布时间】:2020-03-28 13:07:59
【问题描述】:
我有一个查询可以检索这样的对象:
{
"id": 1,
"tags": [1, 2, 3]
}
我想检查对象的tags字段中是否存在给定的标签(比如1),以及annotate作为对象字段的检查结果:
{
"id": 1,
"tagged": true
}
这是我想出来的
annotate(
tagged=Exists(
Articles.tag_set.through.objects.filter(
article_id=OuterRef("pk"), tag_id=tag.id
)
)
)
由于关系tags 已经被主查询加载,所以对我来说,有一个辅助查询似乎是多余的。
有没有更简单的方法来构造这个查询?类似于过滤器in 查找语法的东西。
【问题讨论】:
标签: python django django-rest-framework django-queryset drf-queryset