【发布时间】:2010-09-20 08:34:25
【问题描述】:
对于我的 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?
【问题讨论】:
-
FilteredRelation 对象可能对一些来这里的人有用