出现错误是因为qs.reverse()产生了一个新的QuerySet实例,因此您没有反转旧的实例。
如果要采取行动的基本QS,可以执行以下操作:
>>> augmented_books = Book.objects.extra(select={'price': 2))>>> augmented_books[0].price2>>> augmented_books_rev = augmented_books.reverse()>>> augmented_books_rev[0].price2当然,
select关键字可能要复杂得多,实际上,它几乎可以是任何适用于
[XXX]in的有意义的SQL代码段
SELECT ..., [XXX] as price, ... FROM ... WHERe ... (etc)
编辑
正如其他回应所指出的那样,该解决方案 可能 效率不高。
如果确定要从查询中获取 所有 Book对象,则最好进行一个查询,将其存储在列表中,并最终反转结果列表。
另一方面,如果要获取表的“ head”和“ queue”,则进行两次查询会更好,因为您不会查询所有“中间”无用的对象。



