繁体   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