在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字段有空值的話,用方式一會報錯,用方式二木有問題。
歡迎多提寶貴意見。