对于我的 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?