【发布时间】:2014-11-07 08:01:15
【问题描述】:
我已经用这个查询了 Django 模型
news = News.objects.filter(Q(likes__user__isnull=True)|Q(likes__user=user))
.extra(select={"is_liked":NewsLikes._meta.db_table+".user_id = %d" % user.id})
这给了我以下查询
SELECT (shows_newslikes.user_id = 143) AS `is_liked`, * FROM `shows_news`
LEFT OUTER JOIN `shows_newslikes` ON ( `shows_news`.`id` = `shows_newslikes`.`news_id`)
WHERE (`shows_newslikes`.`user_id` IS NULL OR `shows_newslikes`.`user_id` = 143 )
我想要的是以下查询作为结果
SELECT (shows_newslikes.user_id = 143) AS `is_liked`, *
FROM `shows_news` LEFT OUTER JOIN `shows_newslikes` ON ( `shows_news`.`id` =
`shows_newslikes`.`news_id` and `shows_newslikes`.`user_id` = 143 ) WHERE
(`shows_newslikes`.`user_id` IS NULL )
那么我必须在查询 Django 模型中做什么
【问题讨论】:
-
我想在没有原始查询的情况下做到这一点
-
你到底想做什么?你想用一个布尔值来注释每个结果
News对象,告诉你该行是否被“喜欢”? -
是的......我想要做的,但是用左外连接
标签: django