2017-08-27 141 views
1

我想格式化基于一个时间差在将来的日期:自定义模板标签

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

这不工作,因为你没有注册。在一个文件中可以有多个模板标签。

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)