Ich bin von Django zu Jinja gewechselt, aber viele meiner Vorlagen sind beim Referenzieren kaputt gegangen
%Vor%wenn die Entität nicht definiert ist. Ist es da, um die UndefinedErrors in bestimmten Situationen zu ignorieren, ansonsten muss ich viel hinzufügen
%Vor%Wrapper.
Danke, Richard
Jinja2 verwendet tatsächlich eine spezielle Klasse für undefinierte Entitäten. Sie können diese Undefined
Klasse von Jinja2 ableiten, um __getattr__
und andere Attributaccessoren , die Sie auch für undefinierte Entitäten verwenden können, und lassen diese eine leere Unicode-Zeichenfolge zurückgeben (Zum Beispiel).
Ausgehend von Seans ausgezeichneter und hilfreicher Antwort, habe ich Folgendes getan:
%Vor% und dann env = Environment(undefined=SilentUndefined)
, wo ich das angerufen habe.
In der django_jinja-Bibliothek, die ich verwende, ist das obige in base.py
und ist tatsächlich eine Modifikation von initial_params
Ich musste auch die magischen Methoden der Klasse zurücksetzen, damit Objektattribute usw. korrekt funktionieren. Hinzufügen zu @rattray -
%Vor%Es würde Sinn machen, eine Jinja-Einstellung zu sein. Viele Leute würden aus Django-Vorlagen kommen, die standardmäßig still sind.
Auch suchte nach einer Lösung und verwendet @ s29 SilentUndefined Klasse, aber ich habe gefangen "'Str' Objekt ist nicht aufrufbar" -Fehler, wenn undefinierte Variable wurde versucht, aufgerufen werden, so dass dies meine Problemumgehung ist, könnte es hilfreich sein für jemanden
%Vor%