您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

有没有一种方法可以使用额外的属性来扩展django QuerySet?

有没有一种方法可以使用额外的属性来扩展django QuerySet?

出现错误是因为qs.reverse()产生了一个新的QuerySet实例,因此您没有反转旧的实例。

如果要采取行动的基本QS,可以执行以下操作:

>>> augmented_books = Book.objects.extra(select={'price': 2))
>>> augmented_books[0].price
2
>>> augmented_books_rev = augmented_books.reverse()
>>> augmented_books_rev[0].price
2

当然,select关键字可能要复杂得多,实际上,它几乎可以是任何适用于[XXX]in的有意义的sql代码

SELECT ..., [XXX] as price, ... FROM ... WHERE ... (etc)

正如其他回应所指出的那样,该解决方可能 效率不高。

如果确定要从查询获取 Book对象,则最好进行一个查询,将其存储在列表中,并最终反转结果列表。

另一方面,如果要获取表的“ head”和“ queue”,则进行两次查询会更好,因为您不会查询所有“中间”无用的对象。

Go 2022/1/1 18:50:14 有314人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶