【问题标题】:django template date formattingdjango模板日期格式
【发布时间】:2014-10-11 21:16:24
【问题描述】:

通常,默认日期格式在模板中可以正常工作,但由于某种原因,在这个项目中,我无法让默认日期格式正常工作,以及在模板中格式化日期时间。我希望日期时间显示为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 文档以及先前的经验表明一切都应该正常工作。少了什么东西?有什么想法吗?

【问题讨论】:

  • 是的,我也尝试将 DATE_FORMAT 放入 settings.py 中
  • 可怕的格式是什么意思?
  • 这种格式 - 2014-08-18T19:08:49.138282
  • 这是您的日期时间对象的默认数据库表示。

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


【解决方案1】:

问题中缺少一些信息。 post 对象来自一个美味的 API 调用,它不会像 django ORM 默认情况下那样对待日期/日期时间。

我最终切换到只使用普通的 django ORM,但另一个选项是可以使用 TASTYPIE_DATETIME_FORMATTING 设置 http://django-tastypie.readthedocs.org/en/latest/serialization.html 修改美味的日期时间

【讨论】:

    猜你喜欢
    • 2015-01-15
    • 1970-01-01
    • 2016-03-23
    • 2019-01-21
    • 2019-05-29
    • 2012-05-16
    • 2018-05-31
    • 2013-03-27
    • 2011-12-05
    相关资源
    最近更新 更多