Я не знаю, используете ли вы фреймворк PHP или нет, но у многих фреймворков PHP есть библиотеки времени и времени, чтобы помочь вам не изобретать колесо.
Например, CodeIgniter имеет функцию timespan()
. Просто введите две временные метки Unix, и она автоматически создаст такой результат:
1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes
with
используется для определения локального контекста, а не «set var». Итак, как сказал Панкадж, ваши переменные не будут работать, если они не находятся в пределах {% 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. Если вам нужно извлечь данные / выполнить преобразования, вам, вероятно, следует сделать это в своем представлении или с помощью тега шаблона.
Решение @geekfish:
{% for key, value in v.items %}
<tr>{{ v.title }}</tr><tr>{{ v.name }}</tr>
{% endfor%}
;)