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)