Django自定義排序ORM示例詳解
Django 模型數(shù)據(jù)排序
在 Django 中,打算對(duì)模型數(shù)據(jù)排序,但排序的方式是需要自定義的。有三種方式
- 將數(shù)據(jù)讀取到內(nèi)存之后,利用python自帶的排序方式進(jìn)行排序。
- 利用 Case-When 技術(shù),讓數(shù)據(jù)庫(kù)來(lái)完成排序。
例如,模型如下
class ItemType(TextChoices): A = '選擇題', '選擇題' B = '填空題', '填空題' C = '簡(jiǎn)單題', '簡(jiǎn)單題' class Item(models.Model): type = models.CharField(choices=options.ItemType.choices)
可以這樣定義排序映射:
from django.db.models import Case, Value, When type_order = Case( When(type=ItemType.A, then=Value(0)), When(type=ItemType.B, then=Value(1)), When(type=ItemType.C, then=Value(2)), ) Item.objects.alias(type_order=type_order).order_by(type_order)
這種方式,要比第一種方式更加高效。
- 定義 choices 時(shí),存入數(shù)據(jù)的值是有順序的,利用 choices 映射為顯示值。這種方式很直觀,效率更高,但缺點(diǎn)是需要多一次映射。
以上就是Django自定義排序ORM示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Django自定義排序ORM的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python 中的參數(shù)傳遞、返回值、淺拷貝、深拷貝
這篇文章主要介紹了Python 中的參數(shù)傳遞、返回值、淺拷貝、深拷貝,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06Python中Django框架利用url來(lái)控制登錄的方法
這篇文章主要介紹了Python中Django框架利用url來(lái)控制登錄的方法,實(shí)例分析了Django框架實(shí)現(xiàn)URL登陸的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07python鏈接sqlite數(shù)據(jù)庫(kù)的詳細(xì)代碼實(shí)例
SQLite數(shù)據(jù)庫(kù)是一款非常小巧的嵌入式開(kāi)源數(shù)據(jù)庫(kù)軟件,也就是說(shuō)沒(méi)有獨(dú)立的維護(hù)進(jìn)程,所有的維護(hù)都來(lái)自于程序本身,它是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低2021-09-09Python入門(mén)教程(三十三)Python的字符串格式化
這篇文章主要介紹了Python入門(mén)教程(三十三)Python的字符串格式化,為了確保字符串按預(yù)期顯示,我們可以使用 format()方法對(duì)結(jié)果進(jìn)行格式化,需要的朋友可以參考下2023-05-05淺談python中copy和deepcopy中的區(qū)別
Python學(xué)習(xí)過(guò)程中會(huì)遇到許多問(wèn)題,最近對(duì)copy和deepcopy略感困惑,下面對(duì)其進(jìn)行解答,需要的朋友可以參考。2017-10-10Python使用Turtle圖形函數(shù)畫(huà)圖顏色填充實(shí)例
這篇文章主要介紹了Python使用Turtle圖形函數(shù)畫(huà)圖顏色填充實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08Python HTMLTestRunner如何下載生成報(bào)告
這篇文章主要介紹了Python HTMLTestRunner如何下載生成報(bào)告,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09淺談keras的深度模型訓(xùn)練過(guò)程及結(jié)果記錄方式
今天小編就為大家分享一篇淺談keras的深度模型訓(xùn)練過(guò)程及結(jié)果記錄方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01