通过Django ORM中的自定义字段聚合查询结果

时间:2012-09-06 00:54:12

标签: sql django django-models

我们有一个简单的模型:

class Post(models.Model):
    created = models.DateField()     
    title = models.CharField(max_length=210) 
    content = models.TextField()

有没有办法用Django ORM实现SQL查询?

SELECT YEAR(created), COUNT(*)
FROM Post
GROUP BY YEAR(created)

我可以编写原始SQL,但我想避免它......

1 个答案:

答案 0 :(得分:0)

Django提供了自己的查询集,用于进行像

那样的查询
   Post.objects.values('created').annotate(dcount=Count('created'))

不要忘记导入

from django.db.models import Count

无论如何,你也可以检查你的查询,如

>>> queryset = MyModel.objects.all()
>>> print queryset.query
SELECT "myapp_mymodel"."id", ... FROM "myapp_mymodel"