Python 3.x queryset中的筛选python列表
Django框架正在使用中。 有一个具有多对多字段的模型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表中,我需要
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(),
),
可能吗