Итератор должен возвращать строки, а не байты (файл должен быть открыт в текстовом режиме)

вот мой код...

def import_excel(request):

  if request.method == 'POST':
    person_resource = PersonResource()

    dataset  = Dataset()
    new_person = request.FILES['myfile']
    if not new_person.name.endswith('csv'):
      messages.info(request,'Wrong format')
      return render(request,'upload.html')
    
    imported_data = dataset.load(new_person.read(),format='csv')
    for data in imported_data:
      value = Person(
        data[0],
        data[1],
        data[2]
      )
     value.save()
  return render(request,'upload.html')

при импорте csv файла в базу данных получаю ошибку:

итератор должен возвращать строки, а не байты (файл должен быть открыт в текстовом режиме)

подобно этому

Вы можете прочитать данные загруженного файла следующим образом и проблема будет решена.

new_person = request.FILES['myfile'].read().decode("utf-8")
Вернуться на верх