我有一个包含两个字段的照片模型:
title = models.CharField()
path = models.CharField()
当我在管理面板中添加新照片时,路径等于 /images/image_ex.jpg
这是我的 View 文件:
def gallery(request):
photos = Photo.objects.all()
return render(request, 'gallery.html', {'photos': photos})
这是 gallery.html 中的标签:
{% loadstaticfiles %}
<img src="{%static '{{photo.path}}'%}"/>
问题是照片没有渲染,如果我查看页面的代码,src 等于这样的东西:
src="static/%7B%7B%20photo.path%20%7D%7D"
有什么问题吗?如何在 src 中使用模板变量? 附:静态文件夹中存在图像文件夹,图像也存在。我将静态目录添加到settings.py。另外,如果我将 src 更改为普通的,例如
<img src="{static 'images/image_ex.png'%}">
照片渲染正常。
最佳答案
您在这里将 '{{photo.path}}'
作为字符串传递给 {% static ... %}
,因此它只会将静态 URL 根添加到该字符串前面。
如果你想使用photo.path
的内容,你可以使用:
<img src="{% static <b>photo.path</b> %}"/>
因此{% static ... %}
接受变量作为参数,并将获取photo
的path
属性的内容多变的。 (当然,考虑到该变量已传递,或者是您使用 {% for ... %}
循环生成的变量等。
关于python - 如何在 <img src> 中添加 django 模板变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52803129/