Собрав информацию из различных потоков переполнения стека, я предложил следующую функцию представления в Django для возврата текстового файла через объект HttpResponse:
def serve_file(request):
filepath = sampler_settings.ZIP_PATH + '/test_file'
f = open(filepath, 'r')
response = HttpResponse(f, content_type='application/force-download')
response['Content-Disposition'] = 'attachment; filename="test_file"'
return response
Функция вызывается из интерфейса следующим образом:
function serve_file() {
let url = 'http://127.0.0.1:8000/serve_file'
fetch(url)
.then(response => response.text())
.then(text => console.log(text))
}
Однако единственное, что происходит, - это то, что содержимое файла печатается в консоли браузера, но загрузка не начинается: нет приглашения или чего-либо еще.
Это на сервере разработки в Ubuntu и Firefox.
В чем может быть причина?