我有一个Django项目.有MyModel在models.py.这种模式有4 000 000个实例.
我打破了这个脚本:
for m in MyModel.objects.all():
if len(m.phone) < 10 or len(set(m.phone)) <= 2:
m.delete()
Run Code Online (Sandbox Code Playgroud)
但是,它杀死了python(只是打印'杀死').
我知道,问题在于实例数量.但我怎么能迭代所有这些呢?
您可以先尝试计算对象,然后使用切片版本进行迭代.就像是:
step = 10
count = MyModel.objects.count()/step
for i in xrange(count):
for m in MyModel.objects.all()[i*step:(i+1)*step]:
# doing something with m
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
920 次 |
| 最近记录: |