Django中對資料查詢結果進行排序的方法

2022-09-28 19:36:25 字數 1616 閱讀 6413

在你的 django 應用中,你或許希望根據某字段的值對檢索結果排序,比如說,按字母順序。 那麼,使用 order_by() 這個方法就可以搞定xiuyhvgr了。

>>> publisher.objects.order_by("name")

[, ]

跟以前的 all() 例子差不多,sql語句裡多了指定排序的部分:

select id, name, address, city, state_province, country, website

from books_publisher

order by name;

我們可以對任意字段進行排序:

>>> publisher.objects.order_by("address")

[, ]

>>> publisher.objects.order_by("state_province")

[, ]

如果需要以多個欄位為標準進行排序(第二個欄位會在第乙個欄位的值相同的情況下被使用到),使用多個引數就可以了,如下:

>>>程式設計客棧; publisher.objects.order_by("程式設計客棧state_province", "address")

[, ]

我們還可以指定逆向排序,在前面加乙個減號 - 字首:

>>> publisher.objects.order_by("-name")

[, ]

儘管很靈活,但是每次都要用 order_by() 顯得有點囉嗦。 大多數時間你通常只會對某些 字段進行排序。 在這種情況下,django讓你可以指定模型的預設排序方式:

class publisher(models.model):

name = models.charfield(max_length=30)

address = models.charfield(max_length=50)

city = models.charfield(max_lengwww.cppcns.comth=60)

state_province = models.charfield(max_length=30)

country = models.charfield(max_length=50)

website = models.urlfield()

def __unicode__(self):

return self.name

**class meta:**

**ordering = ['name']**

現在,讓我們來接觸乙個新的概念。 class meta,內嵌於 publisher 這個類的定義中(如果 claxiuyhvgrss publisher 是頂格的,那麼 class meta 在它之下要縮排4個空格--按 python 的傳統 )。你可以在任意乙個 模型 類中使用 meta 類,來設定一些與特定模型相關的選項。 在 附錄b 中有 meta 中所有可選項的完整參考,現在,我們關注 ordering 這個選項就夠了。 如果你設定了這個選項,那麼除非你檢索時特意額外地使用了 order_by(),否則,當你使用 django 的資料庫 api 去檢索時,publisher物件的相關返回值預設地都會按 name 字段排序。

本文標題: django中對資料查詢結果進行排序的方法

本文位址:

jmeter根據查詢資料查詢結果

前兩天試了 一下根據請求查詢出的userid,查詢該userid的資訊。1.新建 1 新建執行緒組 2 新建http請求預設值 3 新建http cookie管理器 4 新建http資訊頭管理器 5 新建登入請求,並新增正規表示式獲取token 2.迴圈控制器 1 新增迴圈控制器,設定迴圈次數 2 ...

Django中Modual資料查詢操作

本文以乙個影視資料庫為資料來源 模型類 作為演示sql,定義乙個輸出sql語句的方法 def showsql from django.db import connection queries connection.queries print queries 1 sql 方法演示 第一條為django...

MongoDB中的資料查詢

準備資料 db.stu.insert db.stu.insert db.stu.insert db.stu.insert db.stu.insert db.stu.insert db.stu.insert db.stu.insert db.stu.insert db.stu.insert 基本查詢方...