我在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')
有人知道如何解决这个问题吗?
答案 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