gpt4 book ai didi

python - 使用django根据日期修改模板

转载 作者:行者123 更新时间:2023-11-30 22:13:25 25 4
gpt4 key购买 nike

我想根据日期修改模板上的选项。

我怀疑的代码看起来像这样:

{% for campaign in filter.qs %}
{% if campaign.event_date__gte=datetime.today() %}
<code>
{% endif %} {% endfor %}

我相信我的问题是我试 ImageView 一样编写它 - 我只是不太确定如何在模板而不是views.py中编辑它

最佳答案

您可以通过将属性方法添加到模型类中来实现此目的。

import datetime 
today = datetime.datetime.today()
class ModelClass(models.Model):
# fields
<b>@property</b>
def is_future_date(self):
<b>return self.event_date >= today</b>
<小时/>
{% for campaign in filter.qs %}
{% if campaign.is_future_date %}
# <code>
{% endif %}
{% endfor %}

但是,如果您有多个不同的日期需要比较,或者您想知道它是否是过去、现在、将来的日期,请为每个日期编写一个属性方法模型不是最好的。因此,我建议编写一个标签过滤器,而不是属性方法,然后将其导入到您的模板中,这样您就可以比较模板中任何位置的日期。实例。

这里是一个例子:

from django import template
register = template.Library()
import datetime

@register.filter
def is_future_date(date):
return date >= datetime.datetime.today()

要在模板中使用它,请这样调用它

{% for campaign in filter.qs %}
{% if campaign.event_date|is_future_date %}
<code>
{% endif %}
{% endfor %}

模板中的另一个日期:

{% if another_instance.date|is_future_date %}
# I am able to do it with whatever model
# no need to create multiple property methods
{% endif %}

关于python - 使用django根据日期修改模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50784967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com