UnicodeDecodeError: кодек 'utf-8' не может декодировать, при загрузке из testscript

Я делаю тестовый скрипт для загрузки файла excel,

def test_upload(self):
    c = Client()
    with open('_material/trick.xlsx') as fp:
        c.post('/cms/template/up', {'name': 'fred','content_file': fp})

Возникает ошибка

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x85 in position 16: invalid start byte

Однако в html форме загрузки ошибка не возникает.

class UploadTemplateFileForm(BaseModelForm):
    content_file = forms.FileField(required=True)

Почему возникает эта разница?

Файлы

.xlsx являются бинарными (на самом деле это архивы pkzip). Вы должны сделать open('_material/trick.xlsx','rb').

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