Python 3.x queryset中的筛选python列表

Python 3.x queryset中的筛选python列表,python-3.x,django,Python 3.x,Django,Django框架正在使用中。 有一个具有多对多字段的模型 class Item(models.Model): special_category_id = models.CharField(max_length=100) categories = models.ManyToManyField(Category) 和类别ID列表 ids=[1, 2, 3] 我需要检查ids中是否至少有一个类别。问题是special\u category\u id在categories表中,我需要

Django框架正在使用中。 有一个具有多对多字段的模型

class Item(models.Model):
    special_category_id = models.CharField(max_length=100)
    categories = models.ManyToManyField(Category)
和类别ID列表

ids=[1, 2, 3]
我需要检查
ids
中是否至少有一个类别。问题是
special\u category\u id
categories
表中,我需要从
id
中排除
special\u category\u id

下面的代码行得通,但它也检查
特殊类别\u id

queryset = queryset.annotate(
    categories_are_in_list=Case(
        When(
            Q(categories__id__in=ids),  # for example, if special_category_id = 1, it should check [2, 3] only
            then=Value(1)
        ),
        default=Value(0),
        output_field=IntegerField(),
    ),
可能吗