Также вы можете унаследовать базовую функциональность и просто добавить искомый вывод. (снова с пользовательским фильтром).
Вот пользовательский шаблонизатор, который добавляет новый аргумент 'c', который изменит (получит, c ... изменит) функционал a / A. Он в основном служит переключателем для переключения функций A / A. Это сложно объяснить. Вот несколько примеров:
{{ datetime|smartdate:"h:i A" }} = '12:30 AM'
{{ datetime|smartdate:"h:i Ac" }} = '12:30 A.M.'
{{ datetime|smartdate:"h:i a" }} = '12:30 a.m.'
{{ datetime|smartdate:"h:i ac" }} = '12:30 am'
А вот и фильтр ...
import re
from django.template.defaultfilters import date as date_filter
# --------------------------------------------------------------------------------
# |smartdate:"date format" -- new arg 'c' (change) alteras the AM/pm appearance
# --------------------------------------------------------------------------------
@register.filter
def smartdate(value, arg):
rendered = date_filter(value, arg)
if 'c' in arg:
rendered = re.sub('(a|p)\.m\.c', lambda m: '%sm' % m.group(1), rendered)
rendered = re.sub('(A|P)Mc', lambda m: '%s.M.' % m.group(1), rendered)
return rendered
Редактировать - слегка оптимизированный фильтр