Html 使用django自定义模板标记显示照片
我想在静态文件中显示对象的图片。然而,对于某些对象,我没有图片,对于那些对象,我想显示一张图片,上面写着“没有可用的图片”。因此,我有一个名为pictures的字段,对于有图片的对象,该字段设置为1;对于没有图片的对象,该字段设置为0。 我已经做了一个模板标签,应该能够插入正确的图片,但我面临一个问题 模板标记文件:Html 使用django自定义模板标记显示照片,html,django,python-3.x,Html,Django,Python 3.x,我想在静态文件中显示对象的图片。然而,对于某些对象,我没有图片,对于那些对象,我想显示一张图片,上面写着“没有可用的图片”。因此,我有一个名为pictures的字段,对于有图片的对象,该字段设置为1;对于没有图片的对象,该字段设置为0。 我已经做了一个模板标签,应该能够插入正确的图片,但我面临一个问题 模板标记文件: def static_picture(id_internal, picture): if picture == 1: return '"' + "{% st
def static_picture(id_internal, picture):
if picture == 1:
return '"' + "{% static" + ' "' + 'img/pictures/' + id_internal + '.jpg' + '"' + ' %}' + '"'
else:
return '"' + "{% static" + ' "' + 'img/pictures/picture_missing.jpg' + '"' + " %}" + '"'
html:
它输出此信息,但不显示任何图片:
<img src="{% static "img/pictures/339-10026.jpg" %}" class="img-responsive">
路径正确,图片存在。我做错了什么?它不是那样工作的,在对{{}}进行评估之后,就没有更多的评估了。所以你看到了弦。 您需要编辑do代码 Jinja(模板转换器从{{}}html代码创建)评估模板函数并将其插入到该位置。之后,django将此消息发送到浏览器:
<img src="{% static "img/pictures/339-10026.jpg" %}" class="img-responsive">
这将返回文件的完整路径
<img src="{% static "img/pictures/339-10026.jpg" %}" class="img-responsive">
from django.conf import settings
def static_picture(id_internal, picture):
if picture == 1:
return '"{}/img/pictures/{}.jpg"'.format(settings.STATIC_URL, id_internal)
else:
return '"{}/img/pictures/picture_missing.jpg"'.format(settings.STATIC_URL)
<img src="{{ object.id_internal|static_picture:object.picture }}" class="img-responsive">
<img src="path/to/static_folder/img/picturesXXX.jpg" class="img-responsive">