Django:无缓存遍历查询集
我有一个非常简单的循环
for alias in models.Alias.objects.all() :
alias.update_points()
但是在查看Django的查询集时,我发现它似乎会保留一个叫做_result_cache
的东西,里面存着之前所有的结果。这占用了我电脑上很多很多的内存,最后导致一切都崩溃了。
我该怎么做才能扔掉那些我根本不需要的东西呢?
2 个回答
0
你应该考虑把你的更改保存回数据库里。
for alias in models.Alias.objects.all() :
alias.update_points()
alias.save()
11
使用查询集的 iterator()
方法,可以将模型分块返回,而不会占用结果缓存:
for alias in models.Alias.objects.iterator() :
alias.update_points()