Есть .iterator(), но его использование (почти) бесполезно без использования server-side cursors.
Поэтому проще получать срезы. Если есть гарантия, что записи за время работы задачи не создаются, то это просто срезы:
Model.objects.all()[0:200]
,
Model.objects.all()[200:400]
, ...
Если гарантии нет, то нужно придумать фильтрацию. Например:
Первая выборка —
Model.objects.order_by("-id")[:200]
Вторая и все следующие —
Model.objects.filter(id__lt=<последний id из предыдущей выборки>).order_by("-id")[:200]