django - Django - 从 FileField() 下载文件
问题描述
我正在努力解决以下问题。我有一个数据库模型FileField()
。
模型.py
class InputSignal(models.Model):
input_file = models.FileField(upload_to='signals/', null=False, )
显示此表中记录的视图。它还支持删除特定行。
视图.py
def storage_list(request):
signals = InputSignal.objects.filter(author=request.user)
if request.method == 'DELETE':
id = json.loads(request.body)['id']
signal = get_object_or_404(InputSignal, id=id)
signal.delete()
return HttpResponse('')
else:
return render(request, 'storage_list.html', {'signals': signals})
此视图的模板如下所示:
模板.html
{% for signal in signals %}
<li>
<h4>{{ signal.name }}</h4>
<p class="mb-0 pb-0">Date of addition:
<b>{{ signal.add_date_pretty }}</b>
</p>
<p class="mb-1">Date of the last analysis: {{ signal.last_edit_date_pretty }}</p>
<h6 class="mb-1">Adnotations:</h6>
<p>{{ signal.adnotations | safe | linebreaks | truncatewords:16 }}</p>
<button class="btn btn-outline-warning mr-3">Download</button>
<button data-id="{{ signal.id }}" onclick='delteSignal(this)' class="btn btn-outline-danger">Delete</button>
</li>
{% endfor %}
我想做的是signal.input_file
在单击“下载”按钮后通过浏览器将文件下载到磁盘。
解决方案
<a href="{{ signal.input_file.url }}"><button class="btn btn-outline-warning mr-3">Download</button></a>
你可以用它来下载。
推荐阅读
- wordpress - 显示包含新帖子的类别列表
- node.js - 如何在服务器上为多个 nodejs 应用程序设置 nginx(使用带有命名空间的 socket.io)
- asp.net - 使用正则表达式获取 html 单选按钮值
- azure-devops - 在 VSTS 中通过 CD 部署时,.NET Core Webjob 不发布
- css - 找不到 Typo3 文件
- css - 如何在引导程序中垂直切换侧边栏上的面板标题
- python - 如何在 Web 服务器中上传/安装 python 应用程序
- c# - 如何序列化 dnnclassifier (serving_input_reciever) 所需的张量输入
- android - 每次尝试运行此应用程序时,我如何修复手机上显示的此运行时错误?
- angular - 防止角度解析模板中的{{