Django не может перехватить все значения, выбрасывая исключение

Я пытаюсь импортировать данные excel в модель django. Чтобы проверить это, я использовал файл excel с более чем 4000 строк. Одно из полей в модели требует, чтобы запись была уникальной, поэтому я попытался отловить все записи, которые таковыми не являются. У меня есть блок try-catch вокруг кода, который пытается добавить значения каждой строки в модель.

integrity_catches = {}
integrity_counts = 0

# loop start

try:
    new_student = Student(
        student_school = school,
        student_class = selected_class,
        student_stream = selected_stream,
        admission_number = admission_number_cell,
        student_name = student_name_cell,
        parent_phone = parent_phone_cell,
        kcpe_marks = kcpe_marks_cell
    )
                    
    new_student.save()
                    
except IntegrityError as e:
        integrity_catches[admission_number_cell] = student_name_cell
        integrity_counts = integrity_counts + 1
        continue

# loop end

Код работает хорошо, но импортирует только 250 студентов, поэтому я ожидаю, что он добавит остальных в словарь integrity_catches. Проблема в том, что словарь содержит 202 записей, в то время как integrity_counts показывает 4035. Это означает, что более чем 4000 записей вызвали исключение, но не были сохранены в словаре. Я пытаюсь убедиться, что когда кто-то импортирует данные из листа excel, он сможет увидеть все записи, которые не удалось добавить в базу данных. Также если я посмотрю на успешно импортированные значения, я замечу, что некоторые очевидные числа отсутствуют, но они есть в excel. И если я посмотрю на значения, которые попали в словарь, некоторые значения, которые явно повторяются, не добавляются в него. Как OI может это исправить?

Вернуться на верх