django模板日期格式

时间:2014-08-18 21:12:16

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

通常默认日期格式在模板中正常工作,但由于某些原因,在此项目中我无法使默认日期格式生效,以及在模板中格式化日期时间。我希望日期时间显示为https://docs.djangoproject.com/en/1.6/ref/settings/上列出的默认值,但它会以这种格式显示:2014-08-18T19:08:49.138282

不仅默认格式不起作用,我也无法使用内置日期模板过滤器。当我使用它时,没有任何回报。

我正在使用python 3.4和django 1.6.5

以下是相关代码:

### models.py ###
class Post(models.Model):
    ...
    create_date = models.DateTimeField(auto_now_add=True)
    ...


### settings.py ###
LANGUAGE_CODE = 'en-us'
USE_L10N = True
# adding the following line doesn't do anything to change the datetime default
DATETIME_FORMAT = 'N j, Y, P'

### template.html ###
{{ post }} <!-- correctly returns the post object from the view -->
{{ post.create_date }} <!-- returns datetime, but horrible format -->
{{ post.create_date|date }} <!-- returns nothing --> 
{{ post.create_date|date:"N j, Y, P" }} <!-- returns nothing -->

我看了很多关于这个主题的SO帖子,但没有找到答案。 Django文档以及之前的经验表明一切都应该有效。少了什么东西?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

问题中有一些缺失的信息。 post对象来自tastypie API调用,并且它不会将日期/日期时间与django ORM默认情况下的相同。

我最终切换到只使用普通的django ORM,但另一种选择是可以使用TASTYPIE_DATETIME_FORMATTING设置http://django-tastypie.readthedocs.org/en/latest/serialization.html

修改tastypie日期时间