我有两个一起使用的模板,一个在另一个内部。内部的图标需要根据父模板的内容进行更改。
我尝试使用变量传递图标路径:
src="{% url 'main_bar_icon' %}">
并且我在父模板中添加了以下代码行:
{% with main_bar_icon='../static/dist/img/logout-icon.svg' %}
{% include 'main_bar.html' %}
{% endwith %}
所以,这是我的内部模板:
{% block main_bar %}
<a href="">
<img class="app-main-bar-icon"
src="{% url 'main_bar_icon' %}">
</a>
{% endblock main_bar %}
这是我的父模板:
{% block content %}
{% with main_bar_icon='/dist/img/logout-icon.svg' %}
{% include 'main_bar.html' %}
{% endwith %}
{% endblock content%}
在浏览器中,我得到了:
<img class="app-main-bar-icon" src(unknown) alt="icon">
答案 0 :(得分:1)
不幸的是,{% url ... %}
模板标记只能用于检索urlpatterns
中定义的视图的URL。
出于您的需要,您将需要:
使用普通变量,因为您已经为变量分配了路径,只需:<img class="app-main-bar-icon" src="{{ main_bar_icon }}">
,或者,对于更多面向未来的解决方案,您可以配置Django static files并先使用{% with main_bar_icon='dist/img/logout-icon.svg' %}
然后再使用<img class="app-main-bar-icon" src="{% static main_bar_icon %}">