如何检查ID或对象列表是否与Django中的多对多记录匹配

如何检查ID或对象列表是否与Django中的多对多记录匹配,django,django-models,django-orm,Django,Django Models,Django Orm,我有以下型号: class Answer(models.Model): answer = models.CharField(max_length=255) class Result(models.Model): description = models.TextField() answers = models.ManyToManyField(Answer) 假设我有一个应答模型的ID列表,如下所示: answer_list = [1, 3, 5, 16] 有没有办法

我有以下型号:

class Answer(models.Model):
    answer = models.CharField(max_length=255)

class Result(models.Model):
    description = models.TextField()
    answers = models.ManyToManyField(Answer)
假设我有一个应答模型的ID列表,如下所示:

answer_list = [1, 3, 5, 16]
有没有办法获得一个结果实例,其中answers字段包含answer\u列表中的所有ID?我不是在寻找与字段中的项目完全匹配的答案,但所有答案ID都需要存在

我尝试了以下解决方案,但它寻找的是精确匹配:

query = Result.objects.filter(answers__in=answers).annotate(num_answers=Count('answers'))
result = query.filter(num_answers=len(answers)).first()

您应该能够通过重复的筛选器调用来执行此操作:

query = Result.objects.all()
for answer in answer_list:
    query = query.filter(answers=answer)

您应该能够通过重复的筛选器调用来执行此操作:

query = Result.objects.all()
for answer in answer_list:
    query = query.filter(answers=answer)