加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

具有distinct()的Django order_by()过滤器

发布时间:2020-12-16 23:21:47 所属栏目:Python 来源:网络整理
导读:我怎么可以像这样做一个order_by …. p = Product.objects.filter(vendornumber='403516006') .order_by('-created').distinct('vendor__name') 问题是我有同一个名字的多个供应商,我只想要供应商的最新产品. 希望有意义吗? 我得到这个DB错误: SELECT DIS
我怎么可以像这样做一个order_by ….
p = Product.objects.filter(vendornumber='403516006')
                   .order_by('-created').distinct('vendor__name')

问题是我有同一个名字的多个供应商,我只想要供应商的最新产品.

希望有意义吗?

我得到这个DB错误:

SELECT DISTINCT ON expressions must match initial ORDER BY expressions
LINE 1: SELECT DISTINCT ON (“search_vendor”.”name”)
“search_product”…

解决方法

根据您的错误信息和 this other question,在我看来,这将修复它:
p = Product.objects.filter(vendornumber='403516006')
               .order_by('vendor__name','-created').distinct('vendor__name')

也就是说,DISTINCT ON表达式似乎必须与最左边的ORDER BY表达式匹配.因此,通过将列用于distinct_by中的第一列,我认为它应该工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读