Django find_each(如 RoR)

Dan*_*ans 3 python django ruby-on-rails

有没有办法find_each在django中使用?

根据 Rails 文档:

此方法仅用于批量处理无法一次性全部放入内存的大量记录。如果您只需要循环少于 1000 条记录,最好使用常规的 find 方法。

http://apidock.com/rails/ActiveRecord/Batches/ClassMethods/find_each

谢谢。

小智 5

一种可能的解决方案是使用内置Paginator类(可以省去很多麻烦)。

https://docs.djangoproject.com/en/dev/topics/pagination/

尝试类似:

from django.core.paginator import Paginator
from yourapp.models import YourModel

result_query = YourModel.objects.filter(<your find conditions>)

paginator = Paginator(result_query, 1000) # the desired batch size

for page in range(1, paginator.num_pages + 1):
   for row in paginator.page(page).object_list:
       # here you can add your required code
Run Code Online (Sandbox Code Playgroud)

或者,您可以根据需要使用限制选项来迭代结果。