【发布时间】:2020-07-11 16:20:28
【问题描述】:
我希望能够点击触发下载的按钮,为了更好地理解,我的代码如下
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 (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%}
【问题讨论】:
-
我认为您的问题已经得到解答,例如:stackoverflow.com/a/36394206/2047157
-
在函数
audio_download内使用ipdb之类的调试器来检查发生了什么。 -
很可能不相关,但您不应硬编码您的网址(也不应使用相对网址路径 FWIW)-use the
{% url %}templatetag instead -
@darkless,谢谢,但是没有使用 pk(主键),file_path 在代码中的真正含义是什么......谢谢
-
@darkless 非常感谢,PDF、doc 等文件与您分享给我的参考链接可以正常工作,但 mp4 视频等文件似乎无法下载.. 请帮助
标签: python django twitter-bootstrap url view