在Django中比较日期时无法解析其余部分:“ {{”中的“ {{”

时间:2019-01-17 21:51:56

标签: django

我的模型中有一个如下所示的字段,用于定义日期:

usedate = models.DateField(default=date.today)

我现在希望能够将该日期与今天的日期进行比较,看是否晚了。我将以下内容添加到了html中,并显示了今天的正确日期:

{% now "Y-m-d" as todays_date %}
{{ todays_date }}

我现在正尝试使用以下方法将今天的日期与模型中的日期进行比较。但我收到错误消息“无法解析其余部分:“ {{”中的“ {{””

有人可以帮忙吗?

   {% if todays_date > {{ todo.usedate }} %}
   <b>You're Late!</b>
{% endif %}

更新 删除todo.usedate周围的花括号可消除该错误,但是if语句即使解析为true也不能解析为true。看起来默认的DateField格式和todays_date的yyyy-mm-dd格式是相同的,应该可以使用,但似乎不行-知道吗?

1 个答案:

答案 0 :(得分:3)

您应该在模板标签中为变量添加大括号。您可以与以下内容进行比较:

{% if todays_date > todo.usedate %}
...
{% endif %}

一个人使用大括号在模板中打印一个变量。

在这里,您将 string todays_datedate对象进行比较)。因此,最好将当前的date传递给视图,例如:

from datetime import date

def some_view(request):
    # ...
    todo = ...
    today = date.today()
    return render(request, 'app/some_template.html', {'todo': todo, 'today': today})

,然后将其呈现为:

{% if today > todo.usedate %}
...
{% endif %}