Подтвердить что ты не робот

Django - тег шаблона в блоке {% if%}

У меня есть следующий словарь, переданный функции рендеринга, причем источником является список строк и заголовка, являющийся строкой, потенциально равной одной из строк в источниках:

{'title':title, 'sources':sources})

В HTML-шаблоне я хотел бы сделать что-то из следующих строк:

{% for source in sources %}
  <tr>
    <td>{{ source }}</td>
    <td>
      {% if title == {{ source }} %}
        Just now!
      {% endif %}
    </td>
  </tr>
{% endfor %}

Однако следующий блок текста приводит к ошибке:

TemplateSyntaxError at /admin/start/
Could not parse the remainder: '{{' from '{{'

... с {% if title == {{ source }} %} выделяется красным цветом.

4b9b3361

Ответ 1

Вы не должны использовать синтаксис с двумя скобками {{ }} в операторах if или ifequal, вы можете просто получить доступ к переменной там, как в обычном питоне:

{% if title == source %}
   ...
{% endif %}

Ответ 2

{% 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 %}

См. Django Doc

Ответ 3

Вы попробуйте.

Я уже пробовал это в своем шаблоне django.

Все будет хорошо. Просто удалите пару фигурных фигур {{ и }} из {{source}}.

Я также добавил тег <table> и , что он.

После модификации ваш код будет выглядеть примерно так.

{% for source in sources %}
   <table>
      <tr>
          <td>{{ source }}</td>
          <td>
              {% if title == source %}
                Just now! 
              {% endif %}
          </td>
      </tr>
   </table>
{% endfor %}

Мой словарь выглядит ниже,

{'title':"Rishikesh", 'sources':["Hemkesh", "Malinikesh", "Rishikesh", "Sandeep", "Darshan", "Veeru", "Shwetabh"]}

и OUTPUT выглядели ниже, как только мой шаблон получил рендеринг.

Hemkesh 
Malinikesh  
Rishikesh   Just now!
Sandeep 
Darshan 
Veeru   
Shwetabh