Создание загружаемой ссылки с помощью pk в Django - PullRequest
0 голосов
/ 31 марта 2020

У меня есть представление кода с pk (первичным ключом), когда я нажимаю на ссылку в HTML, кажется, что ничего не работает ... Вот мой код для простоты понимания Views: '' '

    import mimetypes

    From wsgiref.util import Filewrapper

    def audio_download (request, pk):
        download =get_object_or_404(Audio,pk=pk)

        file =download.audio.audio.url.strip('/')
        wrapper = FileWrapper(open(file, 'rb'))
        response= HttpResponse(wrapper, content_type='application/force-download')
        response ['Content-Disposition]="attachment; filename="+os.path.basename(file)
        Print ('response')
        return response

Тогда мой URL: '' '

  url (r'^audio/download/(P<pk>\d+)/$, views.audio_download, name= 'audio_download')

Затем, наконец, HTML

    {%for audio in audio%}
    <a href = "audio/download/{{audio.id}}">{{audio.title}}</a></center>
    {%endfor%}

1 Ответ

0 голосов
/ 31 марта 2020

Я думаю, что вместо HttpResponse:

response= HttpResponse(wrapper, content_type='application/force-download')

вы можете попробовать использовать FileResponse :

from django.http import FileResponse

response= FileResponse(open(file, 'rb'), content_type='application/force-download')
response ['Content-Disposition]="attachment; filename="+os.path.basename(file)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...