Настраиваемый тег шаблона с несколькими аргументами

Я хочу отформатировать дату в будущем на основе дельты времени:

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)
Другие вопросы по тегам