代码之家  ›  专栏  ›  技术社区  ›  Scott

django ifequal自然日

  •  1
  • Scott  · 技术社区  · 15 年前

    我不知道为什么,但这种情况对我来说永远不会是真的。我正在URL文件中输入datetime.today()。我遗漏了什么吗?

    模板:

    {% load humanize %}
    
    {{ entry.date|naturalday }}  {# Evals to "today" #}
    
    {% ifequal entry.date|naturalday "today" %}
        True
        {{ entry.date|date:"fA"|lower }} {{ entry.date|naturalday|title }}
    {% else %}
        False
        {{ entry.date|naturalday|title }}
    {% endifequal %}
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   TM. Randy Simon    15 年前

    我刚刚在django 1.1.1下测试了这个,它对我很好。

    你在运行哪个版本的django?

    但是,还有一些其他问题可能会导致您遇到问题:

    1. 我也注意到你的问题 {% load humaize %} ,其中包含一个拼写错误(应该是 {% load humanize %} )我不确定这是否在你的真实代码中,或者只是在你的问题中。

    2. 如果你真的在用 datetime.today() 在你 urls.py ,如您所说,请注意这可能会导致问题,因为该值只计算一次,当 extra_context 字典是首次创建的(因为“today”的值只计算一次)。这可能意味着代码将在应用程序运行的第一天工作,然后在第二天失败。你可能不会注意到这一点,直到你部署到一个环境中,应用程序运行一夜没有重新启动。

      如果你想让它变成“今天”,就把函数 datetime.today 而不是 日期时间。今天() . 这样模板将在每次渲染时调用它。