Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 缓存查询集_Python_Django - Fatal编程技术网

Python 缓存查询集

Python 缓存查询集,python,django,Python,Django,我正在开发一个需要过滤大量记录的应用程序。我一直在阅读有关缓存QuerySets和相关内容的书籍,发现了一些不错的资料 qs = MyModel.objects.filter(Q(<initial_filter_to_narrow_down_size>)) 但是当我执行qs=qs.filter(q_对象)时会发生什么呢?缓存将被修改吗?我不想那样。我希望qs在更新之前保持不变。在这种情况下,我应该怎么做?.filter()在应用筛选器之前克隆查询集。缓存将不受影响 顺便说一句,你可

我正在开发一个需要过滤大量记录的应用程序。我一直在阅读有关缓存
QuerySets
和相关内容的书籍,发现了一些不错的资料

qs = MyModel.objects.filter(Q(<initial_filter_to_narrow_down_size>))
但是当我执行
qs=qs.filter(q_对象)
时会发生什么呢?缓存将被修改吗?我不想那样。我希望
qs
在更新之前保持不变。在这种情况下,我应该怎么做?

.filter()在应用筛选器之前克隆查询集。缓存将不受影响


顺便说一句,你可能想检查一下。。。关于queryset缓存的一个很棒的应用程序。

我从您的问题中了解到,您只需要从缓存中获取查询集,如下所示

your_cached_qs = cache.get('qs')
然后,应用你想要的任何过滤器

your_new_qs = your_cached_qs.filter(further_filter)
这不会影响缓存中的查询集。因此,您的缓存将保持不变,直到您自己再次更新它并获得所需的结果

your_new_qs = your_cached_qs.filter(further_filter)