django ifequal naturalday

时间:2010-03-13 05:15:50

标签: django humanize

我不知道为什么,但这种情况永远不会为我评价。我在urls文件中输入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 个答案:

答案 0 :(得分:1)

我刚刚在Django 1.1.1下对它进行了测试,它对我来说效果很好。

你在运行哪个版本的Django?

但是,还有一些其他问题可能导致您出现问题:

  1. 我还注意到,在您的问题中,您有{% load humaize %},其中包含拼写错误(应为{% load humanize %})。我不确定这是在您的真实代码中还是在您的问题中。

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

    如果您希望它真的是“今天”,只需传递函数datetime.today而不是datetime.today()。这样,模板将在每次渲染时调用它。