我有以下查询:
titles = Title.objects.all()
在某些情况下,我需要为此查询获取DISTINCT ('title')
。使用MySQL后端时,Django不允许distinct('title')
。
基本上,我想要做的是:
titles = titles.extra('GROUP BY title')
我该如何正确地做到这一点?
答案 0 :(得分:1)
您是否尝试过使用.distinct()
方法?
titles = Title.objects.values('title','other_columns_you_care_about_and_not_distinct').distinct()
如果您在.distinct()
上执行.all()
,则会返回与您开始时一样多的行,前提是您的ID列是唯一的。因此,您只需在.values()
。
答案 1 :(得分:0)
您需要[annotate][1]
分组
titles = titles.annotate(Count("title")).order_by()