Ik heb het volgende woordenboek doorgegeven aan een renderfunctie, waarbij bronnen een lijst met tekenreeksen zijn en titel een tekenreeks die mogelijk gelijk is aan een van de tekenreeksen in bronnen:
{'title':title, 'sources':sources})
In de HTML-sjabloon zou ik iets van de volgende regels willen bereiken:
{% for source in sources %}
<tr>
<td>{{ source }}</td>
<td>
{% if title == {{ source }} %}
Just now!
{% endif %}
</td>
</tr>
{% endfor %}
Het volgende tekstblok resulteert echter in een fout:
TemplateSyntaxError at /admin/start/
Could not parse the remainder: '{{' from '{{'
…met {% if title == {{ source }} %}
in rood gemarkeerd.
Antwoord 1, autoriteit 100%
Gebruik de {{ }}
-syntaxis met dubbele haakjes niet in if
– of ifequal
-statements, je hebt gewoon toegang tot de variabele daar zoals je zou doen in normale python:
{% if title == source %}
...
{% endif %}
Antwoord 2, autoriteit 24%
Sorry voor de reactie in een oud bericht, maar als je een else if-statement wilt gebruiken, zal dit je helpen
{% if title == source %}
Do This
{% elif title == value %}
Do This
{% else %}
Do This
{% endif %}
Zie voor meer informatie https://docs.djangoproject. com/nl/3.2/ref/templates/builtins/#if
Antwoord 3, autoriteit 11%
{% 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 %}
Antwoord 4, autoriteit 2%
Je probeertdit.
Ik heb het al geprobeerd in mijn django-sjabloon.
Het zal goed werken. Verwijder gewoon het accoladepaar {{en }}uit {{source}}.
Ik heb ook de tag <table>toegevoegd en dat is het.
Na wijziging ziet uw codeer ongeveer zo uit als hieronder.
{% for source in sources %}
<table>
<tr>
<td>{{ source }}</td>
<td>
{% if title == source %}
Just now!
{% endif %}
</td>
</tr>
</table>
{% endfor %}
Mijn woordenboek ziet er als volgt uit,
{'title':"Rishikesh", 'sources':["Hemkesh", "Malinikesh", "Rishikesh", "Sandeep", "Darshan", "Veeru", "Shwetabh"]}
en OUTPUTzagen er zoals hieronder uit toen mijn sjabloonwerd weergegeven.
Hemkesh
Malinikesh
Rishikesh Just now!
Sandeep
Darshan
Veeru
Shwetabh