Для моего приложения Django у меня есть События, Рейтинги и Пользователи. Рейтинги связаны с событиями и пользователями через внешние ключи. При отображении списка событий я хочу отфильтровать оценки события по 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?