[英]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.