Импорт CSV-файла в django и вывод списка ошибок из диапазона - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь загрузить CSV-файл в мои django проекты и сохранить данные в моей модели. Проблема в том, что я получаю индекс списка вне диапазона, но данные загружаются правильно и сохраняются в модели. Может кто-нибудь, пожалуйста, помогите мне решить эту проблему?

это мой метод в views.py:

def admin_upload (запрос): template = "admin_upload. html"

prompt = {
    'order': 'CSV fichier  cef, cin, nom, prenom, group, module, note_1, note_2, note_EFM'
}

if request.method == "GET":
    return render(request, template, prompt)

csv_file = request.FILES['file']

if not csv_file.name.endswith('.csv'):
    messages.error(request, 'Please upload a CSV file')

data_set = csv_file.read().decode('UTF-8')
io_string = io.StringIO(data_set)
next(io_string)
for column in csv.reader(io_string, delimiter=',', quotechar='|'):
    _, created = Note.objects.update_or_create(
        cef=column[0],
        cin=column[1],
        nom=column[2],
        prenom=column[3],
        group=column[4],
        module=column[5],
        note_1=column[6],
        note_2=column[7],
        note_EFM=column[8]
    )

context = {}
return render(request, template, context)

моя модель:

Примечание класса (models.Model):

cef = models.CharField(max_length=30, unique=True)
cin = models.CharField(max_length=30)
nom = models.CharField(max_length=50)
prenom = models.CharField(max_length=50)
group = models.CharField(max_length=10)
module = models.CharField(max_length=30)
note_1 = models.CharField(max_length=5)
note_2 = models.CharField(max_length=5)
note_EFM = models.CharField(max_length=5)

Когда я загружаю CSV-файл, данные загружаются, но я получаю индекс списка из-за ошибки диапазона :

IndexError at /import/
list index out of range
Request Method: POST
Request URL:    http://127.0.0.1:8000/import/
Django Version: 3.0.2
Exception Type: IndexError
Exception Value:    
list index out of range
Exception Location: C:\Users\HP\djangopro\IstaWebSite\ista_larache\web_ista\views.py in admin_upload, line 122
Python Executable:  C:\Users\HP\Envs\projectf_f\Scripts\python.exe
Python Version: 3.8.1
Python Path:    
['C:\\Users\\HP\\djangopro\\IstaWebSite\\ista_larache',
 'C:\\Users\\HP\\Envs\\projectf_f\\Scripts\\python38.zip',
 'C:\\Users\\HP\\Envs\\projectf_f\\DLLs',
 'C:\\Users\\HP\\Envs\\projectf_f\\lib',
 'C:\\Users\\HP\\Envs\\projectf_f\\Scripts',
 'c:\\users\\hp\\appdata\\local\\programs\\python\\python38-32\\Lib',
 'c:\\users\\hp\\appdata\\local\\programs\\python\\python38-32\\DLLs',
 'C:\\Users\\HP\\Envs\\projectf_f',
 'C:\\Users\\HP\\Envs\\projectf_f\\lib\\site-packages',
 'C:\\Users\\HP\\Envs\\projectf_f\\lib\\site-packages\\odf',
 'C:\\Users\\HP\\Envs\\projectf_f\\lib\\site-packages\\odf',
 'C:\\Users\\HP\\Envs\\projectf_f\\lib\\site-packages\\odf',
 'C:\\Users\\HP\\Envs\\projectf_f\\lib\\site-packages\\odf',
 'C:\\Users\\HP\\Envs\\projectf_f\\lib\\site-packages\\odf',
 'C:\\Users\\HP\\Envs\\projectf_f\\lib\\site-packages\\odf',
 'C:\\Users\\HP\\Envs\\projectf_f\\lib\\site-packages\\odf']
Server time:    Tue, 17 Mar 2020 23:33:59 +0100

Мой CSV-файл:

cef, cin, nom, prenom, группа, модуль, note_1, note_2, note_EFM

15474620, la561651, zaed, Aqqdd , dqzx, Asdxdd, 10, 20, 12

...