1

我有以下查询:

titles = Title.objects.all()

在某些情况下,我需要获取DISTINCT ('title')此查询。Django 不允许distinct('title')使用 MySQL 后端。

本质上,我想做的是:

titles = titles.extra('GROUP BY title')

我将如何正确地做到这一点?

4

2 回答 2

1

您是否尝试过使用该.distinct()方法?

titles = Title.objects.values('title','other_columns_you_care_about_and_not_distinct').distinct()

如果您在 a.distinct()上执行操作,.all()您将返回与开始时一样多的行,当然前提是您的 id 列是唯一的。因此,您只需在.values().

于 2012-10-01T21:26:11.587 回答
0

你需要做[annotate][1]的分组

titles = titles.annotate(Count("title")).order_by()
于 2012-10-01T21:23:01.103 回答