Django Query、Distinct 和 Order_By 组合不起作用

标签 django postgresql django-queryset

这里有类似的问题,但我找不到对我有帮助的问题。

我有两个模型,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/

相关文章:

postgresql - SELECT * 当禁止访问某些列时

python - sqlalalchemy postgresql 插入语句忽略重复项

python - Django 查询集更新字段与小写等效 - Django

jquery - {% url %} 和 jquery

python - Django: _meta.get_fields() : include_parents=False : 显示继承自的字段

python - Django 1.3 随机错误 "Lost connection to MySQL server during query"

ruby-on-rails - Ruby on Rails 应用程序的 Heroku 错误日志

django - 如何使用 QuerySet 获取属性 (pk) 的值

python - Django 过滤查询集 __in=查询集中*每个*项目的列表

python - Django - 如何在 Django 错误页面中获取 DatabaseError "current transaction is aborted"的调试信息?