这里也有类似的问题,但我还没能找到一个能帮助我的。
我有两个模型,Chat和Post
有多个聊天,每个聊天有多个附加的帖子。我在试着获取每次聊天的最新帖子。
Post.objects.order_by('-id').distinct('Chat')
按ID过滤帖子(所以最新的帖子是第一个),然后根据聊天记录抓取不同的帖子。
但是由于order_by和distinct不匹配,我得到了错误:
SELECT DISTINCT ON expressions must match initial ORDER BY expressions
那么我到底该怎么做呢?Rawsql吗?谢谢!
如果使用相关模型的distinct
,则必须使用基于该模型的排序:Post.objects.order_by('chat', '-id').distinct('chat')
你也可以看看这个问题