看看这个django代码:
filtered = Question.objects.filter(children__marked=True).distinct()
return Question.objects.exclude(id__in=filtered)
它返回所有问题的列表,但具有已接受(标记)答案的问题除外。我试图让它回复问题,并提出赞成的答案。请参阅此SQL连接:
SELECT * from forum_node AS questions
JOIN forum_node AS answers
ON
questions.node_type = 'question' AND
answers.node_type = 'answer' AND
answers.parent_id = questions.id
WHERE
answers.score > 0 or answers.marked
现在,我如何将此连接转换为Django?
答案 0 :(得分:1)
answered = Question.objects.filter(children__marked=True).distinct()
unanswered = Question.objects.exclude(id__in=answered)
upvoted = Question.objects.filter(children__score__gt=0).distinct()
return unanswered | upvoted