Как мне написать это объединение в Django? - PullRequest
0 голосов
/ 20 марта 2011

Посмотрите на этот код 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 Ответ

1 голос
/ 20 марта 2011
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...