如何在django中编写此连接?

时间:2011-03-20 15:23:18

标签: python sql django

看看这个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?

1 个答案:

答案 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