Django模板:仅在将来显示日期

Bel*_*dez 1 python django datetime django-templates

如何比较Django模板中的日期?我想到了几种可能的途径:

  • 在上下文中发送今天的日期以在模板中进行比较
  • 创建我自己的模板标签
  • 在视图中有一些逻辑只能传递日期,如果它在将来

虽然最后一个选项看起来更容易,但我宁愿将显示逻辑留在模板中而不是视图中.我也不想在模板上下文中传递像今天日期那样微不足道的东西.

也许某人有另一种选择,或者可以分享他们对我上面提到的选项之一的实施,以及为什么他们决定走这条路.

Ste*_*lim 6

我会使用模板过滤器:

from datetime import date
...
@register.filter
def future_dates_only(the_date):
   if the_date > date.today():
       return the_date
   else:
       return None
Run Code Online (Sandbox Code Playgroud)

然后在您的视图中执行以下操作:

{{specialdate|future_dates_only|date:"d M Y"}}
Run Code Online (Sandbox Code Playgroud)