我的模型中有一个如下所示的字段,用于定义日期:
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格式是相同的,应该可以使用,但似乎不行-知道吗?
答案 0 :(得分:3)
您应该不在模板标签中为变量添加大括号。您可以与以下内容进行比较:
{% if todays_date > todo.usedate %}
...
{% endif %}
一个人使用大括号在模板中打印一个变量。
在这里,您将 string (todays_date
与date
对象进行比较)。因此,最好将当前的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 %}