#django #jinja2
#джанго #джинджа2
Вопрос:
Я не знаю, как это объяснить. На работе мы не проходили никакой подготовки по этому вопросу, и поставщик немного дерьмовый. Нам сказали, что мы используем Jinja2. Мы можем создать то, что мы называем «блоком» в коде Jinja, используя уже существующие переменные. Как только мы создали эти блоки из кода Jinja2, мы можем ссылаться на них с include
помощью инструкции.
В моем случае эта переменная, которую я создал, является датой. Я хочу создать новый блок, используя и форматируя эту переменную. Как я мог бы использовать приведенное ниже в другом заявлении?
{% include 'eme_sa_post_booking_personalisation_startdate_formatted' %}
Это вернет 15/01/2022, например
основываясь на существующих критериях, которые я могу использовать, я хочу отформатировать эту дату из инструкции include по определенным языкам.
итак, давайте скажем :
{%- if **-included variable-** and contact.language in ('EN','FR','IE','SP','IT','FI') -%} {{ **-include variable-**|format_date('dd/MM/yyyy') }}{#-EN,FR,IE,SP,IT,FI have their date as 01.12.1900-#} {%- elif **-included variable-** and contact.language == 'HG' -%} {{ **-included variable-**|format_date('yyyy.MM.dd.') }}{#-HG have their date as 1900.12.01. -#} {%- elif **-included variable-** and contact.language == 'SW' -%} {{ **-included variable-**|format_date('dd.MM.yyyy') }}{#-SW have their date as 01.01.1900-#} {%- elif **-included variable-** and contact.language == 'GR' -%} {{ **-included variable-**|format_date('dd.MM.yyyy') }}{#-GR have their date as 01.01.1900-#} {%- else -%} {{ **-included variable-**|format_date('dd/MM/yyyy') }}{#-for all other languages we`ll use 01/12/1900-#} {%- endif %}
Спасибо
Комментарии:
1. Разве вы не могли бы просто вызвать переменную? Нравится
{{ eme_sa_post_booking_personalisation_startdate_formatted |format_date('dd/MM/yyyy') }}
2. Я не совсем понимаю, что вы здесь имеете в виду.
include
тег, будь то jinja2 / Django, буквально включает другой шаблон в текущий, он не включает переменную, как, кажется, предполагает то, что вы говорите. Также, если ваш вопрос касается форматирования даты, вам даже не нужно спрашивать / говорить обinclude
этом . Также, пожалуйста, правильно отметьте свой вопрос, это касается языка шаблонов Django или jinja2?3. к сожалению, это не работает. Мне нужно было бы либо что-то назвать этим оператором include в моем заявлении if, либо указать его как xxxxx.eme_sa_post… иначе это не сработает:(
4. новая переменная, которую я создал с помощью jinja 2 под названием «eme_sa_post….», была создана в приложении, которое мы используем, под названием «Данные Саймона» в месте под названием «блоки». Все, что я хочу сделать, это сослаться на эту новую переменную в новом фрагменте блока jinja, чтобы создать новый блок. Просто используя имя типа «eme_sa_post…» Я не узнаю это в своем выражении, так как у меня должно быть что-то вроде contact.eme_sa_post… я предполагал, что единственным способом сделать это будет оператор include, который затем отобразит мой результат, но этого недостаточно, так как мне нужно отформатировать его с использованием других критериев