Considerar el uso de django-bulk-update
encontrado here on GitHub.
Instalar: pip install django-bulk-update
Implementar: (código tomado directamente de los proyectos archivo Léeme)
from bulk_update.helper import bulk_update
random_names = ['Walter', 'The Dude', 'Donny', 'Jesus']
people = Person.objects.all()
for person in people:
r = random.randrange(4)
person.name = random_names[r]
bulk_update(people) # updates all columns using the default db
Actualización: Como Marc señala en los comentarios esto no es apto para la actualización de miles de filas en una vez. Aunque es adecuado para lotes más pequeños de 10 a 100. El tamaño del lote adecuado para usted depende de su CPU y de la complejidad de la consulta. Esta herramienta es más como una carretilla de ruedas que un camión de volteo.
Quizás esté buscando por lotes. Eche un vistazo a http://stackoverflow.com/questions/4294088/accelerate-bulk-insert-using-djangos-orm – Pramod
No me gusta insertar datos nuevos, simplemente actualice los existentes. – Thomas
¿Quizás con la ayuda de select_for_update? https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.select_for_update –