From 01f978773651791b201051912b3fd88d6b765a9b Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Tue, 14 Jan 2025 20:04:10 +0530 Subject: [PATCH] fix: catch template error for on-disk paths too --- frappe/utils/jinja.py | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/frappe/utils/jinja.py b/frappe/utils/jinja.py index 0759ae9804..4e5a2b6a1a 100644 --- a/frappe/utils/jinja.py +++ b/frappe/utils/jinja.py @@ -92,22 +92,23 @@ def render_template(template, context=None, is_path=None, safe_render=True): if context is None: context = {} - if is_path or guess_is_path(template): - is_path = True - compiled_template = compile_template(template) - else: - jenv: SandboxedEnvironment = get_jenv() - if safe_render and ".__" in template: - throw(_("Illegal template")) - try: - compiled_template = jenv.from_string(template) - except TemplateError: - import html + try: + if is_path or guess_is_path(template): + is_path = True + compiled_template = compile_template(template) + else: + jenv: SandboxedEnvironment = get_jenv() + if safe_render and ".__" in template: + throw(_("Illegal template")) - throw( - title="Jinja Template Error", - msg=f"
{template}
{html.escape(get_traceback())}
", - ) + compiled_template = jenv.from_string(template) + except TemplateError: + import html + + throw( + title="Jinja Template Error", + msg=f"
{template}
{html.escape(get_traceback())}
", + ) import time