XXX,DJANGO ORM里确实有很深的水,需要慢慢理解。。

比如:

获取指定时间段的数据:

app.deployversion_set.filter(add_date__range=(date_start, date_end))按月获取记录数:
app_month = DeployVersion.objects.extra(select={'month': connections[DeployVersion.objects.db].ops.date_trunc_sql('month', 'add_date')}).values('month').annotate(dcount=Count('add_date'))

class DeployVersionSAAppView(TemplateView):
    template_name = 'version/sa_deployversion_app.html'

    def get_context_data(self, **kwargs):
        context = super(DeployVersionSAAppView, self).get_context_data(**kwargs)
        app_dict = {}
        app_month_dict = {}
        appcount = App.objects.annotate(num_app=Count('deployversion'))
        for app in appcount:
            if self.request.GET.has_key('date_start') and self.request.GET.has_key('date_end') :
                date_start = self.request.GET['date_start']
                date_end = self.request.GET['date_end']
                context['days'] = date_start+'至'+date_end
                app_qryset = app.deployversion_set.filter(add_date__range=(date_start, date_end))
            else:
                context['days'] = '所有时间'
                app_qryset = app.deployversion_set.all()
            if app_qryset.count():
                    app_key = str(app.name)
                    app_dict[app_key] = app_qryset.count()
        app_month = DeployVersion.objects.extra(select={'month': connections[DeployVersion.objects.db].ops.date_trunc_sql('month', 'add_date')}).values('month').annotate(dcount=Count('add_date'))
        for app_count in app_month:
            app_count_item = str(app_count['month'])[:7]
            if app_month_dict.has_key(app_count_item):
                app_month_dict[app_count_item] += 1
            else:
                app_month_dict[app_count_item] = 1
        app_month_list = sorted(app_month_dict.items(), key=lambda d: d[0], reverse=False)
        month_categories = []
        month_data = []
        for item_temp in app_month_list:
            month_categories.append(item_temp[0])
            month_data.append(item_temp[1])
        categories = app_dict.keys()
        data = app_dict.values()
        context['now'] = timezone.now()
        context['current_page'] = "deployversion-list-sa-app"
        context['form'] = SAAppForm
        context['categories'] = categories
        context['data'] = data
        context['month_categories'] = month_categories
        context['month_data'] = month_data

        return context

哈哈,本周个人超计划搞定。

最新文章

  1. salesforce 零基础学习(六十二)获取sObject中类型为Picklist的field values(含record type)
  2. 深度|作为C端应用的代表,成功的陌生社交应用是什么样子的?
  3. Qt - QThread(翻译帮助文档)
  4. 使用VS Code开发 调试.NET Core 应用程序
  5. C#--静态函数成员
  6. .Net中的并行编程-1.路线图
  7. codeskulptor hosts
  8. Mysql-proxy中的lua脚本编程(一)
  9. mySQL 增量备份方案(转)
  10. LUN 和 LVM 知识
  11. adb shell am pm
  12. hdu3732(多重背包)
  13. ABP项目中的使用AutoMapper
  14. linux 启动oracle报cannot restore segment prot after reloc: Permission denied
  15. python爬取某站磁力链
  16. 《java多线程编程核心技术》(一)使用多线程
  17. 新建SpringBoot项目运行页面报错Whitelabel Error Page This application has no explicit mapping for /error, so yo
  18. 并发编程 —— Java 内存模型总结图
  19. Mysql中truncate table和delete语句的区别
  20. echart 打开新世界的大门

热门文章

  1. 【leetcode】363. Max Sum of Rectangle No Larger Than K
  2. 使用UDP进行数据发送的实例一
  3. Ueditor设置默认字体
  4. RHEL6.3 ftp服务器参数的戏说——不看白不看,看了不白看
  5. 获取当前<script>节点
  6. mouseenter 事件,固定右侧客服特效
  7. Object-C - 类的定义
  8. API删除文件
  9. (转载)SQLServer存储过程返回值总结
  10. corsproxy