我正在开发一个需要过滤大量记录的应用程序。我一直在读缓存QuerySets
和相关的东西,发现了一些好的材料。在
qs = MyModel.objects.filter(Q(<initial_filter_to_narrow_down_size>))
在这之后,我希望将这个qs放入缓存以备以后使用。我想在不影响数据库的情况下应用所有其他过滤器。有点像
^{pr2}$
但是当我做qs = qs.filter(q_object)
时会发生什么呢?缓存将被修改?我不想那样。我希望qs
在更新之前保持不变。在这种情况下我该怎么办?在
Tags:
我从您的问题中了解到,您只需要从缓存中获取查询集,如下所示。在
然后,应用你想要的任何过滤器。在
^{pr2}$这不会影响缓存中的查询集。因此,您的缓存将保持不变,直到您再次自己更新它并获得所需的结果。在
.filter()在应用筛选器之前克隆查询集。缓存不会受到影响。在
顺便说一句,你可能想检查一下JohnnyCache。。。一个关于queryset缓存的很棒的应用程序。在
相关问题 更多 >
编程相关推荐