如何检查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)