Date

아래 함수batch_qs_via_ids의 첫번째 인자로 queryset 준다. 정해진 batch_size에 해당하는 길이만큼 나누어져 데이타를 처리할 수 있다.

def batch_qs_via_ids(qs, batch_size=100):
    queryset = _get_queryset(qs)
    pk_name = queryset.model._meta.pk.name
    ids = list(queryset.values_list(pk_name, flat=True).distinct())
    logger.info('Snapshot of %s ids we will iterate over.', len(ids))
    paginator = Paginator(ids, batch_size)
    for page_num in paginator.page_range:
        page = paginator.page(page_num)
        query = {'%s__in' % pk_name: page.object_list}
        batch = queryset.filter(**query)
        yield batch

    # Clear out the DB connections queries because it bloats up RAM.
    reset_queries()