添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在Django模板内使用比较器比较日期

0 人关注

我试图将一个事件的结束日期与今天的日期进行比较,以了解该事件是否已经结束。如果活动已经结束,网站用户就不会有报名的按钮,如果活动还没有开始或正在进行,用户就会有一个按钮,可以在html中报名。

我已经在我的HTML模板中尝试了这个方法。

{% if event.end_date|date:"jS F Y H:i" <= today|date:"jS F Y H:i" %}
          {% include 'event/includes/enroll.html' %}

但这个按钮显示的是事件是否已经结束。

我想在我的django模型中添加一个这样的方法。

@property
def is_today(self):
  return self.datefinish == datetime.today().date()

但我不确定如何导入这个方法并在html模板中使用它。

我想尝试在我的视图中添加一个变量,像这样:(Django - 在'if'语句中检查日期时间)

is_today = model.end_date >= datetime.today()
return render_to_response('template.html', {'is_today': is_today})

但是一个同事写了一个基于类的视图来渲染模板,不知道如何使用基于类的视图添加变量来渲染。我也得到了一个错误。

TypeError: '>=' not supported between instances of 'DeferredAttribute' and 'datetime.datetime'

如果有人能就如何最好地实现我的需求提出建议,我将不胜感激 :D

python
django
date
django-templates
comparator
MPia K
MPia K
发布于 2020-10-30
1 个回答
MaximeK
MaximeK
发布于 2020-10-30
已采纳
0 人赞同

你好,为什么你不使用一个自定义过滤器,在你的模板中返回 True False ?( https://docs.djangoproject.com/fr/3.1/howto/custom-template-tags/ ):

import datetime
from django import template
from django.conf import settings
register = template.Library()
@register.filter
def event_ended(date_event):
    return date_event >= datetime.date.today()