我有一个愚蠢的简单循环
for alias in models.Alias.objects.all() :
alias.update_points()
但是查看django QuerySet似乎保留了之前所有结果的_result_cache
。这是吃我的机器的演出和演出,最终一切都爆炸了。
我怎么能扔掉所有我不会关心的东西?
答案 0 :(得分:11)
使用queryset的iterator()
方法以块的形式返回模型,而不填充结果缓存:
for alias in models.Alias.objects.iterator() :
alias.update_points()
答案 1 :(得分:0)
您应该考虑将更改保存回数据库。
for alias in models.Alias.objects.all() :
alias.update_points()
alias.save()