Django过滤有序表内存使用情况

时间:2013-01-23 22:47:58

标签: django memory filter

我有一个在model.py中定义如下的有序表(Blog是另一个表):

class OrderedBlog(Blog):
  class Meta:
    ordering = ["-time_created"]
    proxy = True

如果我尝试做类似的事情:

OrderedBlog.objects.filter(time_created__lt = a_specific_time)

这会将Blog的所有条目都记在内存中吗?谢谢!

1 个答案:

答案 0 :(得分:1)

不,不会。当您要遍历查询集时,Django将开始将查询集的每个元素加载到内存中并一次实例化一个。

如果您担心内存使用情况,最好选择Queryset.iterator()或仅使用only检索您感兴趣的字段。