【问题标题】:Formation a custom widget value to look like custom date形成一个自定义小部件值,看起来像自定义日期
【发布时间】:2018-10-05 17:35:20
【问题描述】:
我有一个自定义小部件,我想将值格式化为日期。
来自数据库的小部件值(是一个 DateField)是以下格式:
2018-04-10 我想向用户展示这样的内容:Tue Apr 03 2018
我尝试使用模板过滤器:
{% if widget.value != None %} value="{{ widget.value|date:'M d, Y'}}"{% endif %}
但字段值为空。
【问题讨论】:
标签:
django
django-templates
django-template-filters
【解决方案1】:
将日期传递给模板时,不需要将其转换为任何格式
是以下格式:2018-04-10
Django 日期模板过滤器接受一个参数 python datetime 对象并转换为指定格式(|date:'M d, Y')
我猜,widget.value 包含字符串'2018-04-10',在这种情况下,django 日期模板过滤器将不起作用。
您可以编写自己的模板过滤器将字符串转换为 python 日期时间对象,然后应用日期 - (widget.value|own_filter|date:'M d, Y')
或者,最好的解决方案,检查 widget 参数,它应该是 python datetime 对象。
附:您几乎无法改进您的代码:
{% if widget.value %} value="{{ widget.value|date:'M d, Y'}}"{% endif %}