本文介绍了Django-从FileField()下载文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在努力解决以下问题.我有一个带有 FileField()
的数据库模型.
I'm struggling with the following problem. I have a database model with FileField()
.
models.py
class InputSignal(models.Model):
input_file = models.FileField(upload_to='signals/', null=False, )
一个显示该表中的记录的视图.它还支持删除特定行.
A view that displays records from this table. It also supports deleting specific rows.
views.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})
此视图的模板如下:
template.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
中的文件下载到磁盘.
What I would like to do is to download the file in signal.input_file
via the browser to the disk after clicking the 'Download' button.
推荐答案
<a href="{{ signal.input_file.url }}"><button class="btn btn-outline-warning mr-3">Download</button></a>
您可以使用它进行下载.
you can use this for the download.
这篇关于Django-从FileField()下载文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!