我正在使用 Django 创建一个网页,该网页使用模板中的以下代码填充表格:
if len(data) > index: print(data[index])
' 个人资料'使用Django中的FileField上传文件,并将其正确保存在Media文件夹中。但是当我点击not fo img时,
我收到了一个找不到页面 - 404错误
我看到的方法依赖于改变视图。但我的观点只是发送对象:
{% 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>
有什么方法可以确保超链接导致文件下载/打开浏览器中的文件(PDF,DOC)?上传后,文件正确存储在媒体文件夹中。
答案 0 :(得分:0)
你没有引用href属性,如果文件名的路径中有任何空格(就像你在你的img的src中那样),那么它会尝试识别你的锚的另一个属性。
答案 1 :(得分:0)
有两个问题:
您没有引用属性值(正如Nick指出的那样)。
您正在使用.path
- 这是文件系统上文件的路径,您需要使用.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 }}">