Формирование пользовательского значения виджета, чтобы выглядеть как пользовательская дата - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть собственный виджет, и я хочу отформатировать значение как Дата.

Значение виджета из базы данных (это DateField) имеет следующий формат:

2018-04-10 и я хочу, чтобы пользователь показывался так: Tue Apr 03 2018

Я попытался использовать фильтр шаблона:

{% if widget.value != None %} value="{{ widget.value|date:'M d, Y'}}"{% endif %}

но значение поля становится пустым.

1 Ответ

0 голосов
/ 25 апреля 2018

Когда вы передаете дату в шаблон, вам не нужно преобразовывать ее в любой формат

имеет следующий формат: 2018-04-10

Фильтр шаблона даты Django принимает аргумент Python Datetime Object и преобразует в указанный формат (|date:'M d, Y')

Я думаю, widget.value содержит строку '2018-04-10', в этом случае фильтр шаблонов даты django не будет работать. Вы можете написать свой собственный фильтр шаблона для преобразования строки в объект datetime Python, а затем применить дату - (widget.value|own_filter|date:'M d, Y') или, лучшее решение, проверьте аргумент виджета, это должен быть объект datetime Python.

P.S. Вы можете немного улучшить свой код:

{% if widget.value %} value="{{ widget.value|date:'M d, Y'}}"{% endif %}

...