with
используется для определения локального контекста, а не для «установки переменной». Итак, как сказал Панкадж, ваши переменные не будут работать, если они не находятся в пределах {% with ... %}{% endwith %}
Обратите внимание, что это должно быть with existing_var as new_var_name
, а не наоборот. Вам также не нужно $
, чтобы закрыть тег.
Так что это выведет переменные (не совсем так, как вы хотите, но они будут отображаться):
{% for key, value in v.items %}
{% if key == 'title' %}{% with value as title %}{{ title }}{% endwith %}{%
endif%}
{% if key == 'name' %}{% with value as name %}{{ name }}{% endwith %}{%
endif%}
{% endfor%}
Однако вам не нужно этого делать (и просто бессмысленно просто менять имя переменной). Если v
словарь, почему бы не сделать:
<tr>{{ v.title }}</tr><tr>{{ v.name }}</tr>
Как правило, вы не должны пытаться устанавливать переменные в шаблоне Django. Если вам нужно извлечь данные / выполнить преобразования, вам, вероятно, следует сделать это в своем представлении или с помощью тега шаблона.