使用 raw 查询,提示没有主键,InvalidQuery('Raw query must include the primary key'),openid 非主键
answer_num = cls.objects.raw("SELECT COUNT(*) FROM server_answerlog WHERE `paper_id` = %d GROUP BY `openid`" % int(paper_id))
使用
answer_num = cls.objects.filter(paper_id=paper_id).values('openid').annotate(num=Count('openid'))
生成出来了并没有我想要的 group by openid
SELECT `server_answerlog`.`openid`, COUNT(`server_answerlog`.`openid`) AS `num` FROM `server_answerlog` WHERE `server_answerlog`.`paper_id` = 1 GROUP BY `server_answerlog`.`id` ORDER BY `server_answerlog`.`id` ASC
对 annotate 不太熟悉,特来求助各位大佬
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.