我在我的一个视图中手动使用 object_list() 方法来进行分页和其他一些很酷的自动化操作。我尝试缓存巨大的查询集并处理可能影响 object_list 的所有内容(例如 request.GET['page']),但简单的想法看起来像:
def some_view(request):
qs = cache.get('key')
if qs == None:
qs = QS.objects.filter(some_huge_query)
cache.set('key', qs)
return object_list(queryset = qs,...)
实际上查询集在模板渲染期间再次执行。有什么方法可以防止查询集被执行吗?