J'ai un tableau de bord qui répertorie le contexte pour chaque élément du tableau de bord. Existe-t-il un moyen rapide de définir toutes les valeurs d'un dictionnaire sur les clés d'un modèle?Dans Jinja2 quel est le moyen le plus simple de définir toutes les clés pour être les valeurs d'un dictionnaire?
Je souhaite réutiliser des modèles et pas toujours mes espaces de noms.
Mon contexte peut être simplifié pour ressembler à quelque chose comme ceci:
{
"business": {"businesses": [], "new_promotions": []},
"messages": {"one_to_one": [], "announcements": []
}
Ainsi, dans une déclaration avec je veux mettre tous les éléments d'affaires être local pour l'y compris. Pour ce faire, actuellement je dois régler chaque variable individuellement:
{% with %}
{% set businesses = business["businesses"] %}
{% set new_promotions = business["new_promotions"] %}
{% include "businesses.html" %}
{% endwith %}
J'ai essayé:
{% with %}
{% for key, value in my_dict %}
{% set key = value %}
{% endfor %}
{% include "businesses.html" %}
{% endwith %}
Mais ils n'ont une portée dans la boucle ne sont donc pas dans le scope comprennent ...
Merci LeafStorm pour vos idées et les exemples. Le modèle business.html utilise déjà des macros, mais pas tous les éléments du tableau de bord, mais vous avez tout à fait raison: il est bon de diviser la logique métier et l'affichage. Dans ce cas et pour moi, je pense qu'il est préférable d'avoir une fonction de contexte qui génère le modèle basé sur le contexte passé car cela signifie moins de code de modèle et garde les choses au sec. – Ross
pourquoi ne puis-je faire {% set show ['otherdetails'] = true%} – aWebDeveloper