我正在使用Django创建一个网页,该网页使用模板中的以下代码填充表格:
{% for dog in foo %}
<tr>
<td> {{dog.first_name}} </td>
<td> {{dog.last_name}} </td>
<td> {{dog.email}} </td>
<td><<a href = {{dog.profile.path}}><img src="not fo.jpg"></a> </td>
</tr>
“个人资料”文件是使用Django中的FileField上传的,并已正确保存在Media文件夹中。但是,当我单击“不是”时,
我收到找不到页面-404错误
我见过的方法依赖于更改视图。但是我的观点只是发送对象:
def DogHome(request.GET):
DogList = dog.objects.all()
return render(request, 'DogHome.html', {'foo':DogList})
如何确保超链接导致在浏览器中下载/打开文件(PDF,DOC)?上传后,文件已正确存储在媒体文件夹中。
有两个问题:
您没有引用属性值(正如Nick指出的那样)。
您正在使用.path
-这是文件系统上文件的路径,需要使用.url
文件的URL,以便将其下载。
如果MEDIA_ROOT
为C:\Files\
,和MEDIA_URL
为/media/
,并且您已将字段设置为profile = models.FileField(upload_to='dogs')
,则:
{{ dog.profile.path }}
是C:\Files\dogs\hello.jpg
并且{{ dog.profile.url }}
是/media/dogs/hello.jpg
。
简而言之,您需要:
<a href="{{ dog.profile.url }}">
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句