我有一个自定义小部件,我想将值格式化为日期。
数据库中的窗口小部件值(是一个DateField)是以下格式:
2018-04-10
我希望像这样向用户展示:Tue Apr 03 2018
我尝试使用模板过滤器:
{% if widget.value != None %} value="{{ widget.value|date:'M d, Y'}}"{% endif %}
但字段值为空。
答案 0 :(得分:1)
将日期传递给模板时,无需将其转换为任何格式
格式如下:2018-04-10
Django日期模板过滤器接受参数python datetime对象并转换为指定的格式(|date:'M d, Y')
我猜,widget.value
包含字符串'2018-04-10'
,在这种情况下,django日期模板过滤器将无效。
您可以编写自己的模板过滤器以将字符串转换为python datetime对象,然后应用日期 - (widget.value|own_filter|date:'M d, Y')
或者,最好的解决方案,检查widget参数,它应该是python datetime对象。
P.S。你几乎无法改进你的代码:
{% if widget.value %} value="{{ widget.value|date:'M d, Y'}}"{% endif %}