我们有一个简单的模型:
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,但我想避免它......
答案 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"