【问题标题】:Formatting TimeField in Django template shows nothing在 Django 模板中格式化 TimeField 不显示任何内容
【发布时间】:2013-02-13 06:34:15
【问题描述】:

我有一个包含 TimeField 对象的模型。我还有一个 django 模板,它以 JSON 格式列出时间字段 例如

...
   "time":"{{ mymodel.mytime }}",
...

不指定任何格式/过滤器等,这会导致以下例如

....
    "time":"5 p.m.",
....

但是,当我将时间过滤器应用于我的模板时,即

...
   "time":"{{ mymodel.mytime|time:"H:i" }}",
...

我得到以下结果:

...
    "time":"",
...

即我的时间价值消失了。我不确定发生了什么事?我在同一个模型中也有一个日期字段,并且我应用的过滤器(在同一个 django 模板中)按定义工作。

我正在使用 Django 1.4.2

我遗漏了什么或做得不对?

【问题讨论】:

  • 你确定time的值实际上是一个时间对象,而不是一个字符串?它的默认表示是“下午 5 点”似乎很奇怪。而不是我期望的“17:00:00”。
  • 在我的模型中,我有以下内容:mytime = models.TimeField(blank=True, null=True).. 所以我希望它默认返回一个 Time 对象?

标签: django django-templates django-filters


【解决方案1】:

您也将时间格式放在双引号中。 试试:

"time":"{{ mymodel.mytime|time:'H:i' }}",

"time":'{{ mymodel.mytime|time:"H:i" }}',

"time":"{{ mymodel.mytime|time:\"H:i\" }}",

【讨论】:

    【解决方案2】:

    出于某种奇怪的原因,不确定是什么......它已经开始工作了!一定是一个错字或过滤器格式的东西?!真的很奇怪。

    【讨论】:

      【解决方案3】:

      时间

      根据给定的格式格式化时间。

      给定格式可以是预定义的 TIME_FORMAT,也可以是自定义格式,与日期过滤器相同。请注意,预定义格式取决于区域设置。

      例如:

      {{ value|time:"H:i" }}

      【讨论】:

        猜你喜欢
        • 2022-11-15
        • 1970-01-01
        • 2016-01-11
        • 1970-01-01
        • 2017-11-15
        • 1970-01-01
        • 2017-05-24
        • 1970-01-01
        • 2021-06-01
        相关资源
        最近更新 更多