我有一个检索这样的对象的查询:
{
"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
查找语法的东西。