在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字段有空值的話,用方式一會報錯,用方式二木有問題。

 

        歡迎多提寶貴意見。


 

 

    

 

 

 

發佈了47 篇原創文章 · 獲贊 124 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章