这里有类似的问题,但我找不到对我有帮助的问题。
我有两个模型,Chat 和 Post
有多个聊天,每个聊天都有多个帖子。 我正在尝试获取每次聊天的最新帖子。
Post.objects.order_by('-id').distinct('Chat')
按 ID 过滤帖子(因此最新的帖子排在第一位),然后根据聊天记录截取不同的帖子。
但由于 order_by 和 distinct 不匹配,我得到了错误:
SELECT DISTINCT ON 表达式必须匹配初始 ORDER BY 表达式
那么我究竟该怎么做呢?原始数据库?谢谢!
最佳答案
如果你使用相关模型的distinct
,你必须使用基于这个模型的排序:
Post.objects.order_by('chat', '-id').distinct('chat')
你也可以看看at this question
关于Django Query、Distinct 和 Order_By 组合不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38883802/