Django日期过滤器无法在模板中工作

时间:2014-08-05 14:49:35

标签: django date django-templates

我在django模板中格式化日期对象时遇到问题。在models.py中,对象看起来像这样:

release_date = models.DateField(blank=True,null=True)

在数据库中它看起来像这样:

[release_date] date,

模板中无效的调用是:

<td>{{ row.release_date|date:"Y-m-d" }}</td>

如果我删除|日期:“Y-m-d”输出如下:

08/04/2014

使用| date:“Y-m-d”根本没有日期,但网站的其余部分看起来很好,控制台中也没有错误消息。

我已经尝试将views.py中的datetime对象转换为字符串,但不知何故,该对象仍然在模板中显示为日期时间对象。这是我在views.py中所做的:

data=Release.objects.all().order_by('-release_date')
#convert dates to format YYYY-MM-DD since conversion does not work in the template
for data_item in data:
    if data_item.orig_plan_date is not None:
        data_item.orig_plan_date = data_item.orig_plan_date.strftime('%Y-%m-%d')

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

根据this帖子,您可以更改日期保存到数据库的格式,这样您就不必指定显示方式。

在您的情况下,我假设您编辑settings.py以包含:

DATE_INPUT_FORMATS = ('%Y-%m-%d')

并将其连接到用于将日期保存到数据库的表单/模型。也许是这样的:

class YourDateModelformName(ModelForm): yourDateField = DateField(input_formats=settings.DATE_INPUT_FORMATS) class Meta: model = YourDateModel