Django等同于count和group by

问题:

我有一个看起来像这样的模型:

class Category(models.Model):
    name = models.CharField(max_length=60)

class Item(models.Model):
    name = models.CharField(max_length=60)
    category = models.ForeignKey(Category)

我想要为每个类别选择计数(只是计数)的项目,所以在SQL中将是这样简单:

select category_id, count(id) from item group by category_id

有没有相当于做这个“Django方式”?还是纯SQL的唯一选择?我熟悉Django中的count( )方法,但是我看不到group by如何适应。

回答:

在这里,正如我刚刚发现的,Django 1.1聚合API是如何做到的:

from django.db.models import Count
theanswer = Item.objects.values('category').annotate(Count('category'))

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Django equivalent for count and group by

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 54 = 57