#python #django #python-3.x
#python #django #python-3.x
Вопрос:
Мне нужно создать функцию, которая будет запускаться в celery и будет по очереди брать записи из модели, проверять что-то и записывать данные в другую модель с отношением onetoone. Существует много записей, и использование model_name.objects.all () не подходит (это займет много памяти и времени), как это сделать правильно.
Комментарии:
1. можете ли вы опубликовать то, что вы тоже пробовали?
2. Я не знаю, что попробовать, поэтому я спросил
3. Можете ли вы выполнить итерацию по своей модели с помощью id?
4. Должно быть что-то, что можно записывать пакетами
Ответ №1:
Вы можете использовать итератор над набором запросов https://docs.djangoproject.com/en/dev/ref/models/querysets/#iterator таким образом, ваши записи извлекаются одним
model_iterator = your_model.objects.all().iterator()
for record in model_iterator:
do_something(record)