我将尽力描述我在这里要做的事情。我有三个类:
- QuestionType
- QuestionTemplate
,关系为:
- Question <- manymany -> QuestionType
- QuestionTemplate <- manymany -> QuestionType
因此,查询是在QuestionTemplate内部的一个方法中,该方法为我提供与QuestionTemplate相关的具有相同QuestionType的可能问题列表。
我试过了:questions = Question.objects.filter(type__in = template.type.all())
其中"template"是一个QuestionTemplate对象。但是这个查询返回给我的是在模板的QuestionType列表中至少有一个QuestionType的问题。我想做的是在问题和模板中获得完全相同的QuestionTypes。
我试了很多东西,但不能得到这个工作,请,有人救我!
types = template.type.all()
query = Question.objects
for t in types:
query = query.filter(type = t)
questions = []
for q in query.select_related('type'):
ok = True
for t in q.type.all():
if t not in types:
ok = False
break
if ok:
questions.append(q)
save_questions_in_m2m_relations_so_that_you_dont_have_to_repeat_this(questions)
相当笨拙,但应该可以满足您的需要。