具有多个参数的自定义模板标记

时间:2017-08-27 10:09:19

标签: python django django-templates

我想根据时间差异格式化未来的日期:

from django import template
from datetime import datetime, timedelta, time


register = template.Library()

@register.simple_tag
def tomorrow(format):
    tommorow = datetime.now() + timedelta(days=1)
    return tommorow.strftime(format)

def dayfuture(dday, format):
    dayfuture = datetime.now() + timedelta(days=dday)
    return dayfuture.strftime(format)

这有效:

{% tomorrow "%A, %d %b, %Y" %}

但我对dayfuture没有运气。

此外,是否可以在同一文件中包含多个自定义模板标记。我没有运气注册第二个。

我正在使用django 1.11 pythone 3.4

1 个答案:

答案 0 :(得分:1)

这不起作用,因为您没有注册它。在单个文件中可以有多个模板标签。

def dayfuture(dday, format):
    dayfuture = datetime.now() + timedelta(days=dday)
    return dayfuture.strftime(format)

你必须把装饰器放在上面才能注册

@register.simple_tag
def dayfuture(dday, format):
    dayfuture = datetime.now() + timedelta(days=dday)
    return dayfuture.strftime(format)