Python 当您有一个带有文件字段的模型对象时,请在模板中下载链接
当您有一个模型对象可用时,是否可以在html模板中创建一个下载链接,如下所示 models.pyPython 当您有一个带有文件字段的模型对象时,请在模板中下载链接,python,django,django-templates,Python,Django,Django Templates,当您有一个模型对象可用时,是否可以在html模板中创建一个下载链接,如下所示 models.py class Barcard(models.Model): name = models.CharField(max_length=30) drinks = models.ManyToManyField(Drink) barcardFile = models.FileField(blank=True, upload_to='barcard') mixingFile =
class Barcard(models.Model):
name = models.CharField(max_length=30)
drinks = models.ManyToManyField(Drink)
barcardFile = models.FileField(blank=True, upload_to='barcard')
mixingFile = models.FileField(blank=True, upload_to='mixing')
views.py
def download(request, barcard_id):
if request.method == 'GET':
barcard = get_object_or_404(Barcard, pk=barcard_id)
return render(request, 'drinks/download.html', {'barcard':barcard})
else:
return HttpResponseRedirect('/drinks/')
模板/饮料/下载.html
{% extends "drinks/base.html" %}
{% block fulltitle %}Drinks{% endblock %}
{% block content %}
<h1>{{ barcard.name }}</h1>
<p> Download barkort her: <a href='{{ MEDIA_URL }}{{ barcard.barcardFile.relative_path }}'>{{barcard.name}} barkort</a> </p>
<p> Download blandekort her: <a href='{{ MEDIA_URL }}{{ barcard.mixingFile.relative_path }}'>{{barcard.name}} blandekort</a></p>
{% endblock %}
{%extends“drinks/base.html”%}
{%block fulltitle%}饮料{%endblock%}
{%block content%}
{{barcard.name}
下载barkort her:
下载blandekort-her:
{%endblock%}
现在我没有得到一个文件,当点击链接。我是错过了什么,还是不得不做一些完全不同的事情 是什么让你认为存在一个
相对路径
属性?您需要使用url
属性,该属性包括媒体url前缀
<a href='{{ barcard.barcardFile.url }}'>
这很有效,谢谢。关于relative\u path
属性,我正在查看其他人的代码,但无法使其正常工作。没有注意到他们定义了一个函数相对路径(self)
。这个解决方案更符合我的要求