Django查詢資料庫時各種種類的排序

2021-08-25 05:51:20 字數 1816 閱讀 5007

按照entry_date從小到大查詢資料,可以寫成:

content.objects.order_by('entry_date')

從大到小排序:

content.objects.order_by('-entry_date')

下面介紹其他種類的排序

隨機排序:

content.objects.order_by('?')

但是order_by(?)這種方式也許expensive並且slow,這取決於後端資料庫。

按照關係表的字段排序

classcategory(base):

code=models.charfield(primary_key=true,max_length=100)

title=models.charfield(max_length=255)

classcontent(base):

title=models.charfield(max_length=255)

description=models.textfield()

category=models.foreignkey(category, on_delete=models.cascade)

# 按照category的字段code,對content進行排序,只需要外來鍵後加雙下劃線

content.objects.order_by('category__title')

# 如果只是按照外來鍵來排序,會預設按照關聯的表的主鍵排序

content.objects.order_by('category')

# 上面等價於

content.objects.order_by('category__code')

# 雙下劃線返回的是join後的結果集,而單下劃線返回的是單個表的集合

content.objects.order_by('category_title')

note: 無論是單下劃線還是雙下劃線,我們都可用}在前端獲取到關聯表的資料。

**:

django查詢資料庫

特殊過濾 django資料庫查詢時,一般就是 modelname.objects.a ll modelname.objects.filter modelname.objects.get 等等,在過濾時,如果過濾條件假設是其中的某一欄位,比如 id,要求id 5,或者是乙個範圍比如1 id 5,前者可...

django資料庫查詢

特殊過濾 django資料庫查詢時,一般就是 modelname.objects.a ll modelname.objects.filter modelname.objects.get 等等,在過濾時,如果過濾條件假設是其中的某一欄位,比如 id,要求id 5,或者是乙個範圍比如1 id 5,前者可...

Django資料庫查詢

查詢集表示從資料庫中獲取的物件集合,在管理器上呼叫某些過濾器方法會返回查詢集,查詢集可以含有零個 乙個或多個過濾器。過濾器基於所給的引數限制查詢的結果,從sql的角度,查詢集和select語句等價,過濾器像where和limit子句。返回查詢集的過濾器如下 返回單個值的過濾器如下 count 返回當...