我使用Django模板语言,使用加载静态文件。但是,当我执行以下操作时
<img src="{% static 'img/category/{{category.category|lower|slugify}}.jpg' %}">
我将HTML视为
<img src="/static/img/category/%7B%7Bcategory.category%7Clower%7Cslugify%7D%7D.jpg">
显然无法呈现正确的图像。
然而我的预期输出是
<img src="/static/img/category/electronics.jpg">
其中category.category = electronics
我将类别作为ctx
变量传递。为什么会这样?
答案 0 :(得分:2)
static
标记中不能包含变量,这就是HTML输出中显示这些%7B%7B
的原因。
但你可以这样做:
{% load static %}
<img src="{% get_static_prefix %}img/category/{{category.category|lower|slugify}}.jpg">
答案 1 :(得分:1)
首先 - 不应该从媒体文件中提供该图像吗?静态文件不是为与模型连接而设计的,而模型是媒体文件的用途。
其次 - 你不能在django中的其他标签内使用变量语法。除非标记设计为采用某些参数,否则您无法将其传递给。