Python 注:m2m字段中是否存在给定值

Python 注:m2m字段中是否存在给定值,python,django,django-rest-framework,django-queryset,drf-queryset,Python,Django,Django Rest Framework,Django Queryset,Drf Queryset,我有一个检索如下对象的查询: { "id": 1, "tags": [1, 2, 3] } 我想检查对象的tags字段中是否存在给定的标记(例如,1),并将检查结果注释为对象的字段: { "id": 1, "tagged": true } 这就是我想到的 annotate( tagged=Exists( Articles.tag_set.through.objects.filter( article_id=Out

我有一个检索如下对象的查询:

{
    "id": 1,
    "tags": [1, 2, 3]
}
我想检查对象的
tags
字段中是否存在给定的标记(例如,1),并
将检查结果注释为对象的字段:

{
    "id": 1,
    "tagged": true
}
这就是我想到的

annotate(
    tagged=Exists(
        Articles.tag_set.through.objects.filter(
            article_id=OuterRef("pk"), tag_id=tag.id
        )
    )
)
由于关系
标记
已经由主查询加载,因此对我来说,有一个辅助查询似乎是多余的


有没有更简单的方法来构造此查询?在
查找语法中与过滤器
相近的内容。

假设标记是一个数组字段

    q = Article.objects.annotate(
        tagged=Exists(
            Article.objects.filter(id=OuterRef('id'), tags__contains=[1])
        )
    )