0

我们有一个简单的模型:

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,但我想避免它......

4

1 回答 1

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"
于 2012-09-06T05:46:40.803 回答