django файл загрузки не найден - PullRequest
0 голосов
/ 04 мая 2020

Я использую Python 3.6 и django 2.2 для разработки веб-сервера. Я хочу, чтобы на моей веб-странице отображалась ссылка для загрузки файла, созданного мной на основе данных, введенных пользователем.

В моем файле setting.py у меня есть:

MEDIA_ROOT = os.path.join.(BASE_DIR,'media')
MEDIA_URL='/media/'

В моем файле views.py есть

query.outputfile.name = os.path.join('submission',query_id,'output_file.txt')

, чтобы связать объект файлового поля с файлом, который я создал:

path/to/project/media/submission/[query_id]/output_file.txt

И когда я включаю

print(query.outputfile.url)

, я получил:

media/submission/[query_id]/output_file.txt

В моем шаблоне html у меня есть

<a href={{ query.outputfile.url }} download> Download output file here </a>

На веб-странице ссылка на файл указывает на

[local ip]/media/submission/[query_id]/output_file.txt

Но когда я нажимаю на ссылку chrome говорит «Failed - No file» и в строке cmd я получил

Not Found: /media/submission/[query_id]/output_file.txt

Я нашел похожие вопросы, такие как this , но не понимаю, что не так с моим кодом.

Мои вопросы:

  1. .url, кажется, относительно моего MEDIA_ ROOT, но почему он не может найти мой файл? Ошибка строки cmd указывает на абсолютный путь / media / ...? Я попытался создать этот путь и файл, но все равно получил ту же ошибку.
  2. Что мне нужно сделать, чтобы сгенерировать ссылку для скачивания?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...