Более точный контроль над временем Django возможно? - PullRequest
1 голос
/ 12 декабря 2011

В настоящее время я использую тег timeuntil , чтобы показать дату истечения срока действия. В настоящее время выплевывает ...

{{rental_till|timeuntill}}

Который производит ...

3 months, 1 week

Можно ли заставить его просто показывать, например, месяцы? Или любой более точный контроль над форматом вывода, подобный тегам date .

Ответы [ 2 ]

2 голосов
/ 12 декабря 2011

Чтобы показывать только месяцы, вы можете написать простой шаблонный фильтр , который разбивает строку на запятую и возвращает первый элемент полученного списка.Код фильтра будет выглядеть следующим образом:

from django.template import Library
register = Library()

@register.filter
def split_timeuntil(duration):
    return duration.split(",")[0]

Тогда в вашем шаблоне: {{rental_till|timeuntil|split_timeuntil}}

Однако фильтр timeuntil не имеет такого типа форматирования, как date.Вы можете легко создать пользовательский фильтр, который возвращает нужный формат, скопировав код timeutil в django/template/defaultfilters.py и django/utils/timesince.py.

0 голосов
/ 12 декабря 2011

Нет, timeuntil не имеет никаких опций, но вы можете просто создать свой собственный тег шаблона на основе timeuntil и заставить его делать что угодно.См .: https://code.djangoproject.com/browser/django/tags/releases/1.3/django/template/defaultfilters.py (строка 729)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...