欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django自定義排序ORM示例詳解

 更新時間:2023年09月20日 11:12:10   作者:alue  
這篇文章主要為大家介紹了Django自定義排序ORM示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Django 模型數(shù)據(jù)排序

在 Django 中,打算對模型數(shù)據(jù)排序,但排序的方式是需要自定義的。有三種方式

  • 將數(shù)據(jù)讀取到內(nèi)存之后,利用python自帶的排序方式進行排序。
  • 利用 Case-When 技術(shù),讓數(shù)據(jù)庫來完成排序。

例如,模型如下

class ItemType(TextChoices):  
    A = '選擇題', '選擇題'  
    B = '填空題', '填空題'  
    C = '簡單題', '簡單題'  
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ù)據(jù)的值是有順序的,利用 choices 映射為顯示值。這種方式很直觀,效率更高,但缺點是需要多一次映射。

以上就是Django自定義排序ORM示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Django自定義排序ORM的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Flask深入了解Jinja2引擎的用法

    Flask深入了解Jinja2引擎的用法

    Jinja2是基于python的模板引擎,功能比較類似于于PHP的smarty,J2ee的Freemarker和velocity。 它能完全支持unicode,并具有集成的沙箱執(zhí)行環(huán)境,應(yīng)用廣泛。jinja2使用BSD授權(quán)
    2022-07-07
  • Flask框架搭建虛擬環(huán)境的步驟分析

    Flask框架搭建虛擬環(huán)境的步驟分析

    這篇文章主要介紹了Flask框架搭建虛擬環(huán)境的步驟,結(jié)合實例形式分析總結(jié)了flask框架搭建虛擬環(huán)境的步驟、常見問題與解決方法,需要的朋友可以參考下
    2019-12-12
  • Python 中的參數(shù)傳遞、返回值、淺拷貝、深拷貝

    Python 中的參數(shù)傳遞、返回值、淺拷貝、深拷貝

    這篇文章主要介紹了Python 中的參數(shù)傳遞、返回值、淺拷貝、深拷貝,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • Python中Django框架利用url來控制登錄的方法

    Python中Django框架利用url來控制登錄的方法

    這篇文章主要介紹了Python中Django框架利用url來控制登錄的方法,實例分析了Django框架實現(xiàn)URL登陸的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • python鏈接sqlite數(shù)據(jù)庫的詳細(xì)代碼實例

    python鏈接sqlite數(shù)據(jù)庫的詳細(xì)代碼實例

    SQLite數(shù)據(jù)庫是一款非常小巧的嵌入式開源數(shù)據(jù)庫軟件,也就是說沒有獨立的維護進程,所有的維護都來自于程序本身,它是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低
    2021-09-09
  • Python入門教程(三十三)Python的字符串格式化

    Python入門教程(三十三)Python的字符串格式化

    這篇文章主要介紹了Python入門教程(三十三)Python的字符串格式化,為了確保字符串按預(yù)期顯示,我們可以使用 format()方法對結(jié)果進行格式化,需要的朋友可以參考下
    2023-05-05
  • 淺談python中copy和deepcopy中的區(qū)別

    淺談python中copy和deepcopy中的區(qū)別

    Python學(xué)習(xí)過程中會遇到許多問題,最近對copy和deepcopy略感困惑,下面對其進行解答,需要的朋友可以參考。
    2017-10-10
  • Python使用Turtle圖形函數(shù)畫圖顏色填充實例

    Python使用Turtle圖形函數(shù)畫圖顏色填充實例

    這篇文章主要介紹了Python使用Turtle圖形函數(shù)畫圖顏色填充實例,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Python HTMLTestRunner如何下載生成報告

    Python HTMLTestRunner如何下載生成報告

    這篇文章主要介紹了Python HTMLTestRunner如何下載生成報告,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 淺談keras的深度模型訓(xùn)練過程及結(jié)果記錄方式

    淺談keras的深度模型訓(xùn)練過程及結(jié)果記錄方式

    今天小編就為大家分享一篇淺談keras的深度模型訓(xùn)練過程及結(jié)果記錄方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01

最新評論