2017-08-31 1 views
0

Je suis novice dans l'utilisation de Jinja et j'essaie les macros dans mon app flacon. J'ai donc une macro qui appelle un autre en utilisant le bloc d'appel spécial comme ceci:Flask Jinja macro <input caller = "Macro Anonymous">

{% macro macro1(x, y) %}      
    <div class="row"> 
     {% call macro2(x,y)%}{% endcall %} 
    </div>      
{% endmacro %} 

Mais quand je considère le modèle rendu, je peux voir un attribut étrange de l'appelant dans mon champ de saisie:

<input caller="<Macro anonymous>"> 

Ai-je fait quelque chose de mal, je voulais juste savoir pourquoi cela se produit? C'est parce que la macro que vous appelez n'est pas définie.

Répondre

0

Vous avez défini macro1 mais vous appelez macro2.

{% macro macro1(x, y) %}      
    <div class="row"> 
     {% call macro1(x,y)%}{% endcall %} 
    </div>      
{% endmacro %} 

Il est un excellent exemple dans le documentation aussi bien.

+0

Salut Mekicha, merci pour le lien. Je voulais juste demander, j'ai défini mes deux macros dans le même fichier, donc macro2 ne devrait pas être défini aussi bien? –

+0

Oui, bien sûr que vous pouvez définir cela. Mais si vous appelez, vous devez déjà appeler une macro prédéfinie – Mekicha

+0

J'ai remarqué que dans mon fichier lorsque j'ai défini les deux macros et que la deuxième macro appelait la première, j'ai toujours le même problème. Mais cela ne devrait pas se produire correctement parce que j'appelle une macro prédéfinie, celle qui est au dessus d'elle? –