对任何标记为重复的人:这不是因为我有一套2个特定的目标,按照特定的顺序来制定。在另一个问题中,它只需要反转,这稍微简单一点。感谢您抽出时间阅读。
我有一个Django查询集,用更简单的术语来说,它似乎是列表的扩展(如果我错了,请纠正我)
我需要:
我是这样做的:
return reversed(querySet)[:20]
然而,由于某种原因,现在我得到了一个错误:
"'reversed' object is not subscriptable"
我很容易做到:
return querySet[:20:-1]
但这会导致列表首先被切片,然后被向后排序。你知道吗
因此,我正在寻找下一个最好的黑客方法来实现这一点的过程中
但当我找到它的时候,我想知道你最好的方法是什么?你知道吗
这是因为,在大多数情况下,Django querysets似乎就是这样,
reversed
不生成列表,而是生成迭代器:迭代器是不可下标的。更确切地说:它没有
__getitem__
方法。你知道吗因此,这将不起作用:
但这将(在访问项之前从迭代器创建一个列表):
Queryset.reverse()
https://docs.djangoproject.com/en/2.2/ref/models/querysets/#reversequerySet.reverse()[:20]
应该这样做。你知道吗相关问题 更多 >
编程相关推荐