无法在 Django 模板中的 if 块下嵌套 {% static %} 标签
Can not nest {% static %} tag under if block in Django template
当我呈现以下模板时得到 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'
upd 解决了。派生模板中包含 {% load staticfiles%}
。抱歉,这并不明显,{% load staticfiles%}
首先位于基本模板中。已找到答案 here
但是我需要进一步的解释:为什么 {% load staticfiles%}
不能在基本模板中工作?
把它想象成一个导入语句,其中基本模板是一个模块中的一个函数,它调用另一个模块中的一个函数,派生模板,带有一些参数。
基本模板中的 "import" 不会被派生模板继承,因此它需要 "imported" 和 {% load ... %}
当我呈现以下模板时得到 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'
upd 解决了。派生模板中包含 {% load staticfiles%}
。抱歉,这并不明显,{% load staticfiles%}
首先位于基本模板中。已找到答案 here
但是我需要进一步的解释:为什么 {% load staticfiles%}
不能在基本模板中工作?
把它想象成一个导入语句,其中基本模板是一个模块中的一个函数,它调用另一个模块中的一个函数,派生模板,带有一些参数。
基本模板中的 "import" 不会被派生模板继承,因此它需要 "imported" 和 {% load ... %}