将自定义窗口小部件值形成为自定义日期

时间:2018-04-25 09:41:03

标签: django django-templates django-template-filters

我有一个自定义小部件,我想将值格式化为日期。

数据库中的窗口小部件值(是一个DateField)是以下格式:

2018-04-10我希望像这样向用户展示:Tue Apr 03 2018

我尝试使用模板过滤器:

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

但字段值为空。

1 个答案:

答案 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 %}