当有可用的模型对象时,是否可以在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 = 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/')
template / drinks / download.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 %}
现在,单击链接时我没有文件。我错过了什么吗,还是必须做一些完全不同的事情?
答案 0 :(得分:1)
是什么让您认为有一个relative_path
属性?您需要使用url
属性,该属性包括media_url前缀。
<a href='{{ barcard.barcardFile.url }}'>