Для моего приложения Django у меня есть события, рейтинги и пользователи. Рейтинги относятся к событиям и пользователям через внешние ключи. При отображении списка событий я хочу отфильтровать рейтинги Event_ user_id, поэтому я знаю, было ли событие оценено пользователем.
Если я это сделаю:
event_list = Event.objects.filter(rating__user=request.user.id)
(request.user.id дает user_id текущего зарегистрированного пользователя)... тогда я получаю только события, которые оцениваются пользователем, а не весь список событий.
То, что мне нужно, может быть создано через пользовательский SQL:
SELECT *
FROM `events_event`
LEFT OUTER JOIN (
SELECT *
FROM `events_rating`
WHERE user_id = ##
) AS temp
ON events_event.id = temp.user_id
Есть ли более простой способ, поэтому мне не нужно использовать собственный SQL?