Django中使用group_by的方法

yipeiwu_com7年前Python基础

本文实例讲述了Django中使用group_by的方法。分享给大家供大家参考。具体分析如下:

在Django中怎样使用group_by语句呢?找了很多资料,都没有看到好的,在这里分享两种方法给大家:

首先,我们先建一个简单的模型。

class Book(models.Model): 
   name = models.CharField(u'书名',max_length=255,db_index = True) 
   author = models.CharField(u'作者',max_length=255) 
   remark = models.CharField(u'备注',max_length=255) 
   pub_date = models.DateTimeField(u'发表时间',auto_now_add = True) 

方式一:

book_list = Book.objects.all() 
book_list.query.group_by = ['author'] 

方式二:

query = Book.objects.all().query 
query.group_by = ['author'] 
book_list = QuerySet(query = query, model = Book) 

不过,本人在实际应用中发现一个小小的问题:

如果author字段有空值的话,用方式一会报错,用方式二木有问题。

希望本文所述对大家的Python程序设计有所帮助。

相关文章

Python基础入门之seed()方法的使用

 seed() 设置生成随机数用的整数起始值。调用任何其他random模块函数之前调用这个函数。 语法 以下是seed()方法的语法: seed ( [x] ) 注意...

学习python (1)

先推荐一个学习python的好网址简明 Python 教程 Swaroop, C. H. 著 沈洁元  译在线教程的网址:http://www.woodpecker.org.cn:...

简单介绍Python下自己编写web框架的一些要点

在正式开始Web开发前,我们需要编写一个Web框架。 为什么不选择一个现成的Web框架而是自己从头开发呢?我们来考察一下现有的流行的Web框架: Django:一站式开发框架,但不...

Python利用scapy实现ARP欺骗的方法

Python利用scapy实现ARP欺骗的方法

一、实验原理。 本次用代码实现的是ARP网关欺骗,通过发送错误的网关映射关系导致局域网内其他主机无法正常路由。使用scapy中scapy.all模块的ARP、sendp、Ether等函...

Python基于生成器迭代实现的八皇后问题示例

本文实例讲述了Python基于生成器迭代实现的八皇后问题。分享给大家供大家参考,具体如下: 问题:有一个棋盘和8个要放到上面的皇后,唯一的要求是皇后之间不能形成威胁。也就是说,必须把他们...