2017-09-14 2 views
1

J'ai une macro Jinja définie comme suit.Référence des ressources statiques Django dans les modèles Jinja

globalmacros.html

{% macro SUINavMenu(leftlist=[],logo="images/Logo_WEB_450_250.png") %} 
<div class="ui pointing secondary menu"> 
    <div class="item"> 
    <img src="{{ static({{ logo }}) }}"> 
</div> 
{% for item in leftlist %} 
    <a class="item" href="{{ item[1] }}"> 
    {{ item[0] }} 
    </a> 
{% endfor %} 
</div> 
{% endmacro %} 

dashboard.html

{% from "macros/globalmacros.html" import SUINavMenu %} 
{% block navigation %} 
{{ SUINavenu(leftlist=[["Home","/home/"],["New Bill","/newbill/"]], 
    logo="images/web_logo.png") }} 
{% endblock navigation %} 

J'importe la macro définie dans "globalmacros.html" dans "dashboard.html" et essayer de passer l'emplacement du logo. Cependant, je ne suis pas sûr comment pour le faire.

Dans une version non-macro, le code suivant fonctionne.

<img src=" {{ static('images/logo_web.png') }} "></img> 

Le code ci-dessus ne fonctionne pas "de globalmacros.html" comme Jinja ne traite pas {{}} dans un autre {{}}

Quel est le travail autour de cela?

Répondre

2

J'ai une forte supposition que <img src="{{ static(logo) }}"> devrait fonctionner. Si ce n'est pas le cas, je signalerais cela comme un bug.

+0

J'ai eu cette erreur. Type d'exception: TemplateSyntaxError Exception Valeur: jeton attendu ':', got '}' –

+0

Alors ... pour moi, il semble que la mise en œuvre soit foutue parce que ça n'a pas de bon sens pour moi. –

+0

Désolé. Ça a marché. C'est la façon de le faire. Merci beaucoup. L'erreur que j'ai mentionnée ci-dessus était due à un problème sans rapport. –