Je souhaite définir une variable dans un modèle enfant qui sera rendu dans le modèle parent. Si j'utilise l'affectation de blocs, rien n'est rendu. Si j'utilise l'affectation en ligne, cela fonctionne comme prévu. J'utilise Jinja 2.8 avec Python 2.
base.html
:
{{ content }}
bad.html
avec affectation de bloc, rien n'a été rendu:
{% extends 'base.html' %}
{% set content %}
Hello, World!
{% endset %}
good.html
, rend correctement:
{% extends 'base.html' %}
{% set content = 'Hello, World!' %}
J'ai aussi ce problème. Test simple:
{% extends "..." %}
...
{% set aaa = 'test' %}
{% set bbb %}
<a href="/">bar</a>
{% endset %}
...
{% block some_block %}
{{ aaa }} {# renders 'test' #}
{{ bbb }} {# renders empty string #}
{% endblock %}
J'obtiens le même comportement incohérent avec la déclaration «avec»:
{% with %}
{% set something = 'werd' %}
{% set something_block %}
werd werd werd
{% endset %}
{% endwith %}
...
{{ something }} {# renders empty string #}
{{ something_block }} {# renders 'werd werd werd' #}
ces bugs sont probablement liés?
L'instruction with n'est pas censée fonctionner de cette façon, c'est donc intentionnel. Je ne peux cependant pas reproduire le problème défini indépendamment de cela dans master.
Tant pis, je vois de quoi il s'agit.
Modifié dans 45b59b522a542c21611214b352df049a3b6dbcb4
Commentaire le plus utile
J'ai aussi ce problème. Test simple: