簡體   English   中英

如何告訴 Django ORM 顛倒查詢結果的順序?

[英]How can I tell the Django ORM to reverse the order of query results?

在我尋求了解針對 Django 模型的查詢時,我一直在嘗試使用如下查詢獲取最后 3 個添加的有效 Avatar 模型:

newUserAv = Avatar.objects.filter(valid=True).order_by("date")[:3]

但是,這反而給了我按日期排序的前三個頭像。 我確定這很簡單,但我在 Django 文檔中找不到它:如何選擇最后三個頭像對象而不是前三個?

在字段名稱前放置一個連字符。

.order_by('-date')

創建列表和

def messages_to_list(messages):
    result = []
    for message in messages:
        result.append(message_to_list(message))
    result.reverse()
    return result

def message_to_list(message):
    return {
    'member': str(message.member),  
    'message': str(message.message),
    'pub_date': str(message.pub_date.strftime(" %B %d,%Y, %A %I:%M%p ")),
    'admin': message.admin
    }

上面的結果將按 pub_date 降序排列,然后按標題升序排列。

Entry.objects.filter(pub_date__year=2005).order_by('-pub_date', 'headline')

如果我們有一個 Python 序列並查看 seq [-5:],我們將首先看到第五個(最后一個)元素。 Django 不支持這種訪問方式(從尾部切分),因為在 SQL 中無法高效完成。 ((((((((((((((((((((((((((((((

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM