ich den folgenden Code haben:Jinja2 Filter für dynamische registrierte Vorlagen
from app.utils.logic.template_filters import get_date_europe
env = Environment(
loader=FileSystemLoader(template_dirs),
autoescape=True,
extensions=['jinja2.ext.i18n'],
)
env.install_null_translations()
env.filters['get_date_europe'] = get_date_europe
def render_from_text(text, **context):
t = jinja2.Template(text)
return t.render(**context)
und ich möchte einen benutzerdefinierten Filter hinzufügen spezifischen Datumzeit Formatierung auszuführen. text
ist eine gültige Vorlage, die als Zeichenfolge gespeichert wird. Das Problem ist, dass, wenn die Leitung {{ some_object.created_at|get_date_europe }}
in Vorlage enthalten ist, jinja eine Ausnahme auslöst jinja2.exceptions.TemplateAssertionError: no filter named 'get_date_europe'
ich einen Debug-Haltepunkt in erste Linie von render_from_text
gesetzt und nannte env.filters
, erscheint Funktion dort 'get_date_europe': <function get_date_europe at 0x10fca02f0>,
zu sein. Wie kann ich meinen Filter für jinja sichtbar machen?
P.S. Django 1.9 wird verwendet.