Python 如何告诉Django ORM反转查询结果的顺序?

Python 如何告诉Django ORM反转查询结果的顺序?,python,django,Python,Django,为了理解针对Django模型的查询,我一直在尝试使用以下查询获取最后3个添加的有效化身模型: newUserAv = Avatar.objects.filter(valid=True).order_by("date")[:3] 然而,这给了我按日期添加的前三个头像。我相信这很简单,但我在Django文档中很难找到它:如何选择最后三个化身对象而不是前三个?在字段名前加上连字符 .order_by('-date') 创建列表和 def messages_to_list(messages):

为了理解针对Django模型的查询,我一直在尝试使用以下查询获取最后3个添加的有效化身模型:

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
    }
上面的结果将按发布日期降序排列,然后按标题升序排列

Entry.objects.filter(pub_date__year=2005).order_by('-pub_date', 'headline')
如果我们有一个Python序列并查看seq[-5:],我们将首先看到第五个(最后一个)元素。Django不支持这种访问模式(从末尾切片),因为它不能在SQL中高效地完成。
()()()()(()()()(()(()(()((()(()(?