Фильтр шаблонов Django naturalday: вернуться к отформатированной дате?

Я использую тег шаблона Django naturalday, но как Я форматирую строку даты, если указанная дата не сегодня, завтра или вчера?

Это моя строка шаблона:

 Date: {{ result_date|naturalday }}

Если result_date — это сегодня, вчера или завтра, шаблон отображает естественную строку. Но если это 10 дней назад, как я могу контролировать форматирование даты, чтобы она отображалась как «25 июля»?

Документы говорят:

Для дат, которые являются текущим днем ​​или в пределах одного дня, возвращайте «сегодня», «завтра» или «вчера», в зависимости от ситуации. В противном случае отформатируйте дату, используя переданную строку формата.

Что означает «переданная строка формата»?


person Richard    schedule 06.08.2013    source источник


Ответы (2)


Передайте формат после :, как в фильтре date:

Date: {{ result_date|naturalday:"F d" }}
  • F - это текстовое представление месяца, например. July.
  • d - день месяца, 2 цифры с ведущими нулями, например. 25.

Надеюсь, это поможет.

person alecxe    schedule 06.08.2013

Вы должны проверить пример:

Примеры (когда «сегодня» — 17 февраля 2007 г.):

  • 16 февраля 2007 года становится вчера.
  • 17 февраля 2007 года становится сегодня.
  • 18 февраля 2007 года становится завтра.
  • Любой другой день форматируется в соответствии с заданным аргументом или настройкой DATE_FORMAT, если аргумент не указан.

Тогда о DATE_FORMAT:

По умолчанию: «N j, Y» (например, 4 февраля 2003 г.)

Форматирование по умолчанию для отображения полей даты в любой части системы. Обратите внимание, что если для USE_L10N установлено значение True, то формат, определяемый локалью, имеет более высокий приоритет и вместо него будет применяться. См. допустимые строки формата даты.

Таким образом, он вернется к Feb. 17, 2007, если аргумент строки формата не указан, а DATE_FORMAT не указано в settings.py.

Строка нормального резервного формата указана в ответе alecxe.

person Hieu Nguyen    schedule 06.08.2013