eu recebo Invalid block tag: "static", expected "endif"
quando eu renderizar o seguinte modelo
{% load staticfiles %} <!-- in base.html -->/
<!-- ... -->
{% block content %}
{% if ava_url %}
<div><img src="/images/{{ava_url}}"></div>
{% else %}
<div><img src="/images/{% static "img/default_ava.png" %}"></div>
{% endif %}
{% endblock %}
Por que não consigo aninhar static
sob if
?
Usando o Django 1.6.7
upd Isso tudo está no contêiner de bloco. Pode ser o motivo. No entanto, quando eu removo if
{% load staticfiles %} <!-- in base.html -->
<!-- ... -->
{% block content %}
<div><img src="/images/{% static "img/default_ava.png" %}"></div>
{% endblock %}
eu recebo Invalid block tag: "static", expected "endblock"
upd resolvido. incluído {% load staticfiles%}
no modelo derivado. Desculpe, não era óbvio que {% load staticfiles%}
estava no modelo base em primeiro lugar. A resposta foi encontrada Aqui
No entanto, preciso de mais explicações: por que {% load staticfiles%}
não funciona a partir do modelo base?
Respostas:
6 para resposta № 1Pense nisso como uma instrução de importação em que o modelo base é uma função dentro de um módulo que está chamando uma função em outro módulo, o modelo derivado, com alguns parâmetros.
A "importação" no modelo base não é herdada pelo modelo derivado e, portanto, precisa ser "importada" com {% load ... %}