python - Django 等效于 count 和 group by

标签 python django

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

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'))

关于python - Django 等效于 count 和 group by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/327807/

相关文章:

python - 获取 Qt 中的输出 : 'QProcess::start()' and 'QProcess:readAllStandardOutPut()'

python - django - 'ModelName' 对象不可迭代

python - 按键列表对字典排序

python - Astropy ICRS 到银河中心变换 Numpy AttributeError

python 列表推导集最大长度

python - 使用 isin() 来确定应该打印什么

python - 如何在 Django 中自定义 related_name 参数

python - cassandra.InvalidRequest : code=2200 [Invalid query] message ="Keyspace ' ' does not exist"

django - 异常(exception):从请求的数据流中读取后无法访问正文

python - 递归未知深度的查询集列表