Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django批处理由于内存小?_Python_Django - Fatal编程技术网

Python Django批处理由于内存小?

Python Django批处理由于内存小?,python,django,Python,Django,我有一个模型,它有大量的实例,而内存无法容纳它们 现在我需要加载它们并用一些非常复杂的函数修改一些属性(因此我不能直接在数据库上执行修改) 我想知道是否有任何方法可以批量处理查询集。例如,我可以阅读如下内容: Company.objects.all()[0:1000] Company.objects.all()[1000:2000] Company.objects.all()[3000:3000] ... 直到发现查询集为None。但是,上面的查询集总是从头开始读取,这不是很有效 您知道如何更

我有一个模型,它有大量的实例,而内存无法容纳它们

现在我需要加载它们并用一些非常复杂的函数修改一些属性(因此我不能直接在数据库上执行修改)

我想知道是否有任何方法可以批量处理查询集。例如,我可以阅读如下内容:

Company.objects.all()[0:1000]
Company.objects.all()[1000:2000]
Company.objects.all()[3000:3000]
...
直到发现查询集为
None
。但是,上面的查询集总是从头开始读取,这不是很有效


您知道如何更高效地批处理模型吗?

当您运行第二行
Company.objects.all()[1000:2000]
时,Django将只从数据库中获取项目1000-2000(零索引)。你所说的“上述查询集将始终从一开始就阅读”是什么意思?@Alasdair感谢你指出:)。我想我误解了列表切片是如何与Django一起工作的。