Как установить переменную внутри шаблона Django

Я не знаю, используете ли вы фреймворк PHP или нет, но у многих фреймворков PHP есть библиотеки времени и времени, чтобы помочь вам не изобретать колесо.

Например, CodeIgniter имеет функцию timespan(). Просто введите две временные метки Unix, и она автоматически создаст такой результат:

1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes

http://codeigniter.com/user_guide/helpers/date_helper.html

0
задан Geekfish 23 March 2019 в 20:40
поделиться

2 ответа

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. Если вам нужно извлечь данные / выполнить преобразования, вам, вероятно, следует сделать это в своем представлении или с помощью тега шаблона.

0
ответ дан Geekfish 23 March 2019 в 20:40
поделиться

Решение @geekfish:

{% for key, value in v.items %}
    <tr>{{ v.title }}</tr><tr>{{ v.name }}</tr>
{% endfor%}

;)

0
ответ дан Andre 23 March 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: