我在jinja2模板(减法)中做一些简单的计算,希望找到一个解决方法来处理jinja2中的类型错误。在
到目前为止,我一直在尝试:为了在呈现过程中忽略不可用的变量,我将Undefined()子类化为这样的子类。在
def silently(*args, **kwargs):
return u''
return_new = lambda *args, **kwargs: SilentUndefined()
class SilentUndefined(Undefined):
__unicode__ = silently
__str__ = silently
__call__ = return_new
__getattr__ = return_new
这种方法在大多数情况下都有效,但减法除外,例如:
^{pr2}$我想,我可以像这样忽略“TypeError”异常,但它不起作用。在
class TypeError():
pass
我就是这样做的。。。在
with open (reportEmailTemplate, "r") as myfile:
reportEmailTemplateHTML = myfile.read()
#apply context to coverpage
t = Template(reportEmailTemplateHTML, undefined=SilentUndefined)
renderedReportEmailTemplate = t.render(context)
在第一个近似值中,将计算函数移出Jinja并将它们保留在Python中,听起来更符合逻辑,也更符合Jinja2的行。在
在你的模板里
^{pr2}$相关问题 更多 >
编程相关推荐