0
votes

Comment écrire une condition dans une expression jinja

J'ai une expression jinja comme:

{{ <strong>word['words']</strong> if word['words'] in meaning['example'] }}

Ce qui me donne o / p:

you don't know jack

Ici mot [' mot '] a la valeur jack dans le o / p

Comment puis-je mettre le jack en gras dans l'expression? p>

WRT Donc j'ai essayé en tant que:

{% if meaning['example'] %}
    {{ meaning['example'] }}<br>
{% endif %}

Mais cela n'a pas fonctionné, toute aide est très appréciée, TIA


5 commentaires

Il vous suffit d'écrire les balises html en dehors de l'expression. Et aussi l'expression jinja est calculée côté serveur.


J'ai cette valeur dans la variable qui signifie ['exemple'] -> vous ne connaissez pas jack et la variable word ['words'] contient jack comme valeur, donc j'ai besoin pour mettre en gras la valeur jack dans la phrase ..... j'espère que c'est clair


Une autre chose que vous pouvez faire est de diviser la chaîne, de faire une boucle dessus et de vérifier si chaque mot appartient à la liste des «mots», puis de les mettre en gras et le reste de l’imprimer tel quel. exemple pour split {% list1 = variable1.split (';')%}.


le tout comme {% set str = signification ['exemple']. split ('')%} puis {% pour mot ['mot'] dans str%} ....?


@MayankJain Je suis un peu confus, pouvez-vous m'aider s'il vous plaît avec un exemple?


3 Réponses :


0
votes

Vous avez quelques options:

dans un si bloquer xxx

dans un ternaire si l'expression Xxx

Je préfère personnellement la première option si je veux écrire un balisage ou que l'expression conditionnelle est relativement longue, comme dans votre exemple.


2 commentaires

Je pense que la question est de savoir qu'il veut écrire toute la chaîne avec quelques mots en gras ...


@MayankJain Exactement et que certains mots sont en variable, ici par exemple. word ['words'] tient la prise



1
votes
{% if meaning['example'] %}
    {% for w in meaning['example'] %}
        {% if w == word['word']%}
            <strong>{{w}} </strong>
        {% else %}
               {{w}} 
    {% endfor %}
{% endif %}
if you have number of word then replace{% if w == word['word']%}  -->>  {% if w in word %} 

1 commentaires

Ce serait un exemple sur la façon de le faire, merci mon pote mais la solution à mon Q est différente



0
votes

Pour la référence de tous

Merci pour le commentaire @Mayank Jain d'où j'ai creusé cette solution pour mon Q:

                        {% if meaning['example'] %}
                            {% for w in meaning['example'].split(' ') %}
                                {% if w == word['word']%}
                                    <strong>{{w}} </strong>
                                {% else %}
                                       {{w}}
                                {% endif %}
                            {% endfor %}
                        {% endif %}


0 commentaires