Le dictionnaire suivant est passé à une fonction de rendu, les sources étant une liste de chaînes et le titre, une chaîne potentiellement égale à l'une des chaînes des sources:
{'title':title, 'sources':sources})
Dans le modèle HTML, j'aimerais réaliser quelque chose entre les lignes suivantes:
{% for source in sources %}
<tr>
<td>{{ source }}</td>
<td>
{% if title == {{ source }} %}
Just now!
{% endif %}
</td>
</tr>
{% endfor %}
Cependant, le bloc de texte suivant génère une erreur:
TemplateSyntaxError at /admin/start/
Could not parse the remainder: '{{' from '{{'
... avec {% if title == {{ source }} %}
surligné en rouge.
Vous ne devez pas utiliser la syntaxe {{ }}
entre crochets dans les instructions if
ou ifequal
, vous pouvez simplement accéder à la variable à cet endroit comme vous le feriez en python normal:
{% if title == source %}
...
{% endif %}
{% for source in sources %}
<tr>
<td>{{ source }}</td>
<td>
{% ifequal title source %}
Just now!
{% endifequal %}
</td>
</tr>
{% endfor %}
or
{% for source in sources %}
<tr>
<td>{{ source }}</td>
<td>
{% if title == source %}
Just now!
{% endif %}
</td>
</tr>
{% endfor %}
Désolé pour le commentaire dans un ancien post, mais si vous voulez utiliser une déclaration else si, cela vous aidera
{% if title == source %}
Do This
{% Elif title == value %}
Do This
{% else %}
Do This
{% endif %}
Pour plus d'informations, voir Documentation Django
Vous essayez ceci.
Je l'ai déjà essayé dans mon modèle Django .
Cela fonctionnera bien. Supprimez simplement la paire d'accolades {{et}} de {{source}} .
J'ai également ajouté <table> tag etc'est tout.
Après modification, votre code ressemblera à quelque chose comme ci-dessous.
{% for source in sources %}
<table>
<tr>
<td>{{ source }}</td>
<td>
{% if title == source %}
Just now!
{% endif %}
</td>
</tr>
</table>
{% endfor %}
Mon dictionnaire ressemble à celui ci-dessous,
{'title':"Rishikesh", 'sources':["Hemkesh", "Malinikesh", "Rishikesh", "Sandeep", "Darshan", "Veeru", "Shwetabh"]}
etOUTPUTressemblait à ci-dessous une fois mon template got render.
Hemkesh
Malinikesh
Rishikesh Just now!
Sandeep
Darshan
Veeru
Shwetabh