Skip to main content
 首页 » 编程设计

python之Django 模板 : Display a date only if it's in the future

2025年05月04日37shanyou

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

  • 在上下文中发送今天的日期,以便在模板中进行比较
  • 创建我自己的模板标签
  • 在 View 中有一些逻辑,只传递 future 的日期

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

也许有人有其他选择,或者可以分享他们对我上面提到的其中一个选项的实现,以及他们为什么决定走那条路。

请您参考如下方法:

我会使用模板过滤器:

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

然后在你看来做这样的事情:

{{specialdate|future_dates_only|date:"d M Y"}}