Django NotImplementedError:未实现annotate()+ distinct(fields)

时间:2017-09-08 13:52:27

标签: django orm psql

我想计算structure字段中特定值的总数。

Fund.objects.all().exclude(structure__isnull=True).extra(select={'Structure': 'structure'}).values('Structure').annotate(total=Count('structure')).order_by('-total')

但在此之前,我想应用distinct()函数,以便只有具有不同id的对象才会用于查询。所以我尝试过这样的事情:

object_list = Fund.objects.all().distinct('id')
object_list.exclude(structure__isnull=True).extra(select={'Structure': 'structure'}).values('Structure').annotate(total=Count('structure'))

但我收到错误:

NotImplementedError: annotate() + distinct(fields) is not implemented.

我怎样才能做到这一点?

在Psql中:

CREATE VIEW distinct_funds as select distinct id, structure from Fund;

SELECT count(structure), structure from distinct_funds GROUP BY structure;

0 个答案:

没有答案