Ich möchte eine Variable in einer untergeordneten Vorlage festlegen, die in der übergeordneten Vorlage gerendert wird. Wenn ich die Blockzuweisung verwende, wird nichts gerendert. Wenn ich die Inline-Zuweisung verwende, funktioniert sie wie erwartet. Ich benutze Jinja 2.8 mit Python 2.
base.html
:
{{ content }}
bad.html
mit Blockzuweisung, nichts gerendert:
{% extends 'base.html' %}
{% set content %}
Hello, World!
{% endset %}
good.html
, wird korrekt gerendert:
{% extends 'base.html' %}
{% set content = 'Hello, World!' %}
Habe auch dieses Problem. Einfacher Test:
{% extends "..." %}
...
{% set aaa = 'test' %}
{% set bbb %}
<a href="/">bar</a>
{% endset %}
...
{% block some_block %}
{{ aaa }} {# renders 'test' #}
{{ bbb }} {# renders empty string #}
{% endblock %}
Ich erhalte das gleiche inkonsistente Verhalten mit der 'with'-Anweisung:
{% with %}
{% set something = 'werd' %}
{% set something_block %}
werd werd werd
{% endset %}
{% endwith %}
...
{{ something }} {# renders empty string #}
{{ something_block }} {# renders 'werd werd werd' #}
Diese Fehler sind wahrscheinlich verwandt?
Die with-Anweisung soll nicht so funktionieren, das ist also beabsichtigt. Ich kann das eingestellte Problem jedoch nicht unabhängig davon im Master reproduzieren.
Egal, ich verstehe, worum es in diesem Problem geht.
Geändert in 45b59b522a542c21611214b352df049a3b6dbcb4
Hilfreichster Kommentar
Habe auch dieses Problem. Einfacher Test: