Doberman26rus
упс. Простите не заметил =)
не
f = file(settings.MEDIA_ROOT + 'task/test.docx', 'r+')
а
f = open(settings.MEDIA_ROOT + 'task/test.docx', 'r+')
Вылезла та же ошибка. Погуглив выяснил, что, похоже, для DOCX-файлов существует новый мим-тип “application/vnd.openxmlformats-officedocument.wordprocessingml.document”, который вроде как надо регистрировать на серваках, но это другая тема.
Решил попробовать скормить файл word, сохранённый в формате 97-2003 - получилось так:
def serve_file(request):
f = open(settings.MEDIA_ROOT + 'task/test.doc', 'r+')
data = FileWrapper(f)
response = HttpResponse(data, content_type="application/msword")
response['Content-Disposition'] = 'attachment; filename=uuu.doc'
return response
Перезапустил на всякий случай джанго-сервер, пошёл по ссылке, и получил в ворде диалог выбора кодировки. При этом ворд предложил мне кодировку “Вьетнамская(Windows)”, выбор иных кодировок не дал результатов, открылся документ из символов псевдографики - вместо одной строки исходного текста получил много строк непонятных значков :).