Python Django模板日期比较

Python Django模板日期比较,python,django,jinja2,Python,Django,Jinja2,我正在尝试比较html模板中的日期。如果当前日期介于开始日期和结束日期之间,则将显示可用。但是,我的当前代码仅在我的日期介于开始日期和结束日期之间时显示为不可用 now变量由dateTime.now生成,并传递给html。日期格式为2018年4月16日下午1:44,使用Django的DateTime字段 将以下方法添加到密钥模型: @property def is_now(self): """ Returns whether the key is active now :

我正在尝试比较html模板中的日期。如果当前日期介于开始日期和结束日期之间,则将显示可用。但是,我的当前代码仅在我的日期介于开始日期和结束日期之间时显示为不可用

now变量由dateTime.now生成,并传递给html。日期格式为2018年4月16日下午1:44,使用Django的DateTime字段


将以下方法添加到密钥模型:

@property
def is_now(self):
    """
    Returns whether the key is active now
    :return:
    """
    return self.start_date < timezone.now() < self.end_date

使用自定义模板标记您可以向密钥模型添加一个可用的方法,在该模型中进行逻辑检查。这将更容易调试和优化too@RamkishoreM所以每次我对所有数据进行数据库获取时都必须更新该字段?不需要字段。只有一个方法def可用self:。这也使得它可以重复使用。在model中保留这样的逻辑是一个好主意,如果它用于从数据库中检索一个项目,我就可以得到它。我可以知道在提取多行后如何将可用数据附加到结果中吗?Im使用html模板中的for循环从每个row@Eneres你能提供代码来解释你的意思吗?
    keys = Key.objects.filter(user=request.user)
    dateTimeNow = datetime.now()
    args = {'keys': keys, 'now': dateTimeNow}
    return render(request, self.template_name, args)
@property
def is_now(self):
    """
    Returns whether the key is active now
    :return:
    """
    return self.start_date < timezone.now() < self.end_date
 {% for key in keys%}
    {% if key.is_now %} 
        available
    {% endif %}
 {% endfor %}