你好,
我需要在时基上添加一些条件,现在我从数据库中获取的时间值就像2012-09-05 05:05:05一样,我需要在其中添加 24 小时。
我需要在时基上显示不同的内容,比如原始时间我需要显示“hi”,24 小时后我需要在模板文件中显示“hello”。
我怎样才能做到这一点?请帮我。
自定义模板标签可能是一个不错的方法:https ://docs.djangoproject.com/en/dev/howto/custom-template-tags/#writing-custom-template-filters 。您可以使用参数实现自己的deltaDays
标签,即{{ date|deltaDays:1 }}
.
您也可以将其用作便宜的过滤器。
from django import template
register = template.Library()
@register.filter()
def is_at_least_24_hours_ago(value):
import datetime
original_date_plus_24 = value + datetime.timedelta(hours=24)
right_now = datetime.datetime.now()
if right_now >= original_date_plus_24:
return True
return False
然后在您的模板中:
{% if object_date|is_at_least_24_hours_ago %}
// It's 24 hours later
{% else %}
// It's not
{% endif %}
这是有关如何添加日期的示例,
import datetime
b = var_name + datetime.timedelta(0,3) # days, seconds
or
datetime.timedelta(days=1)
通过视图传递值,然后在模板中使用 if 语句