在最佳情况下,需要计算某些属性值等于1,2,3和> 3的行数。 例如:
for i in xrange(1,4):
count = some_queryset\
.filter(related__value__exact=i)\
.annotate(count=Count('mtopening'))\
.values_list('count',flat=True)
有没有办法在没有raw_sql或简单的.extra select的情况下以面向对象的方式进行改进?
答案 0 :(得分:0)
使用Django的计数方法
count = some_queryset \
.filter( Q(related__value__gte=1) & Q(related__value__lt=4) ).count() # This should work also without using Q()
修改强>
我不认为在django中有直接的方法可以做到这一点,但我认为以下代码可以完成这项工作:
sums = []
for i in range(1,4):
sums.append(
QUERYSET.filter( related__value = i ).count()
)
print sums # will show you a list of sums of the values you want