如果游标不支持列表切片,如何迭代查询结果 Flask-Mongoengine

问题描述

我正在制作一个待办事项列表应用程序,我想反转查询返回的列表,因为我希望最新的待办事项项目位于我收到的错误之上
IndexError: Cursor instances do not support slice steps
这是我的代码

def index():
    todos = Todo.objects.all()
    todos = todos[::-1]
    return render_template('index.html',todo=todos)

解决方法

你有日期时间字段吗?如果按 _id 排序,则将按插入时间排序。这基本上意味着比较不仅仅在时间戳部分上完成。假设您有一个日期字段,那么像这样的事情将使用 order_by 对结果集进行排序。

order_by 接受可变数量的字符串参数,这些参数是字段名称(在您的文档中定义),可选地以“-”开头(表示降序排序,即最高的在前)。

def index():
    todos = Todo.objects().order_by('-datetimeFieldOfYourTodoCreation')
    return render_template('index.html',todo=todos)