django基于属性注释查询集

时间:2010-03-09 15:04:38

标签: django django-models

有没有办法在一个 Django查询中执行以下操作?

MyModel.filter(attr=a).values('attr','fields','of','interest').annotate(count=Count('id'))
MyModel.filter(attr=b).values('attr','fields','of','interest').annotate(count=Count('id'))

编辑: 我需要a和b的单独计数。我想,MyModel.filter(attr__in=(a,b))...MyModel.filter(Q(attr=a)|Q(attr=b))...无效。

1 个答案:

答案 0 :(得分:4)

你的MyModel类可能有一个order_by值设置为不在('attr','fields','of','interest')的东西上。尝试删除一个或多个感兴趣字段的排序或排序。

MyModel.objects.values('attr','fields','of','interest'
        ).annotate(count=Count('id')).order_by()