from jinja2 import Undefined
import logging
class SilentUndefined(Undefined):
'''
Dont break pageloads because vars arent there!
'''
def _fail_with_undefined_error(self, *args, **kwargs):
logging.exception('JINJA2: something was undefined!')
return None
基于肖恩出色而有益的回答,我做了以下工作:
然后
env = Environment(undefined=SilentUndefined)
在我叫它的地方。在我所使用的django戋ujinja库中,上面的内容位于
base.py
中,实际上是initial_params
的修改我还需要重置类的magic方法以使对象属性等正常工作。添加到@rattray--
做一个金贾场景是有意义的。很多人都来自django模板,默认情况下是无声的。
Jinja2实际上为未定义的实体使用了一个特殊的类。您可以从Jinja2将这个^{} 类划分为子类,以包括
__getattr__
和其他attribute accessors,甚至可以在未定义的实体上使用它们,并让它们返回一个空的unicode字符串(例如)。相关问题 更多 >
编程相关推荐