我在渲染以下模板时获得Invalid block tag: 'static', expected 'endif'
{% load staticfiles %} <!-- in base.html -->/
<!-- ... -->
{% block content %}
{% if ava_url %}
<div><img src="{{ava_url}}"></div>
{% else %}
<div><img src="{% static 'img/default_ava.png' %}"></div>
{% endif %}
{% endblock %}
为什么我不能在static
下嵌套if
?
使用Django 1.6.7
upd 这是块容器中的所有内容。可能是原因。但是,当我删除if
{% load staticfiles %} <!-- in base.html -->
<!-- ... -->
{% block content %}
<div><img src="{% static 'img/default_ava.png' %}"></div>
{% endblock %}
我得到Invalid block tag: 'static', expected 'endblock'
更新已解决。在导出的模板中包含{% load staticfiles%}
。抱歉,显而易见的是,{% load staticfiles%}
首先位于基本模板中。找到了答案here
但是我需要进一步解释:为什么{% load staticfiles%}
无法在基本模板中运行?
答案 0 :(得分:6)
把它想象成一个import语句,其中基本模板是一个模块中的一个函数,它调用另一个模块中的函数,派生模板,带有一些参数。
&#34; import&#34;在基本模板中不会被派生模板继承,因此它需要被导入&#34;与{% load ... %}