1

你好,

我需要在时基上添加一些条件,现在我从数据库中获取的时间值就像2012-09-05 05:05:05一样,我需要在其中添加 24 小时。

我需要在时基上显示不同的内容,比如原始时间我需要显示“hi”,24 小时后我需要在模板文件中显示“hello”。

我怎样才能做到这一点?请帮我。

4

3 回答 3

2

自定义模板标签可能是一个不错的方法:https ://docs.djangoproject.com/en/dev/howto/custom-template-tags/#writing-custom-template-filters 。您可以使用参数实现自己的deltaDays标签,即{{ date|deltaDays:1 }}.

于 2013-02-25T07:17:04.597 回答
2

您也可以将其用作便宜的过滤器。

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 %}
于 2013-02-25T07:29:47.110 回答
1

这是有关如何添加日期的示例,

import datetime
b = var_name + datetime.timedelta(0,3) # days, seconds

or 

datetime.timedelta(days=1)

通过视图传递值,然后在模板中使用 if 语句

于 2013-02-25T07:07:41.833 回答