论坛首页 编程语言技术论坛

我的django下group by解决办法(包括模板部分)

浏览 4943 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-04-08   最后修改:2011-11-06
对iteye的文章编辑器很无语,还是没办法方便的拷贝内容过来,建议大家还是去原帖吧

猛击这里

凡事有利便有弊,Django数据层的ORM和表现层的模板系统给一般的WEB开发带来了很大的便利,避免了码农们重复重复再重复的无聊工作,但是对于稍微复杂些的需求如最常见的Group by统计,直到目前最新的1.3版本,Django均表示压力很大...

是的,我们都知道在view层面实现group by常见的办法有:

1. 使用annotate

rom django.db.models import Count
Members.objects.values('designation').annotate(dcount=Count('designation'))
等同于

SELECT designation, COUNT(designation) AS dcount
FROM members GROUP BY designation
2. 使用raw直接带入SQL代码

people = Person.objects.raw('SELECT *, age(birth_date) AS age FROM myapp_person')
for p in people:
    print "%s is %s." % (p.first_name, p.age)
但是在具体实现中,总是伴随着各种不同的需求,比如:假设有一销售项目名为myproject,现需将销售数据按员工进行分类展示并小计,具体效果如下:

...

  • 大小: 19.5 KB
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics