我正在优化我的 Django 应用程序的特定用例。我的第一步是将 a 替换QuerySet
为ValuesQuerySet
. 这工作得很好,但我想做更多。现在我正在考虑使用 Memcache(该应用程序在 Google App Engine 上运行)。所以我的计划是基本上把它ValuesQuerySet
放在 Memcache 中。然而,据我了解,这ValueQuerySet
基本上是一个尚未物化的数据结构。为了使缓存起作用,ValueQuerySet
需要先实现然后放入 Memcache。
根据Django 文档:
list(). Force evaluation of a QuerySet by calling list() on it.
和:
Finally, note a ValuesQuerySet is a subclass of QuerySet, so it has all methods of QuerySet.
但是当我尝试my_values_qs.list()
它时会抛出一个异常:
AttributeError: 'ValuesQuerySet' object has no attribute 'list'
所以,虽然ValuesQuerySet
是它的一个子类,QuerySet
但显然不能list()
它的内容。如果属实,则意味着 Django 文档是错误的或至少具有误导性。
我错过了什么还是文档确实错了?ValueQuerySet
实现结果以便我可以将其存储在 Memcache中的最佳方法是什么?