Jinja2 ignoriere UndefinedErrors für Objekte, die nicht gefunden werden

8

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

    
probably at the beach 31.05.2011, 16:03
quelle

5 Antworten

5

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).

    
Sean Vieira 31.05.2011, 17:03
quelle
5

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

    
rattray 26.03.2014 03:30
quelle
3

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.

    
s29 16.03.2016 23:33
quelle
2

Ich baute auf @ rattray's Antwort oben auf:

%Vor%

Dann verwendet es mit Vorlage String:

%Vor%

Ich musste die Fehler ignorieren, wenn ich eine Vorlage direkt aus der Zeichenkette rendere anstatt die Umgebung zu verwenden.

    
Al Conrad 19.01.2015 22:29
quelle
1

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%     
Basalex 09.02.2018 12:47
quelle

Tags und Links