用途:在 Frappe 中按场景构建 Jinja 模板,并在多种输出形态间做出选择。打印用 Print Format(查询/脚本报表用 JS 的 {%= %});动态邮件用 Email Template;系统通知用 Notification;面向客户网页用 Portal Page;可复用函数/过滤器用 hooks.py 的 jenv。
主要能力:Print Format 通过 UI 新建并选 Jinja 类型后编写模板,用 doc.get_formatted() 格式化金额日期,子表行需传父文档,如 row.get_formatted("rate", doc);面向用户文本用 _() 包裹。Email Template 用内联样式,经 Notification 或 frappe.render_template 配合 frappe.sendmail 发送。Portal Page 在 www/ 目录下建 index.html 与 index.py,在 get_context 中鉴权与查询数据;自定义方法与过滤器在 hooks.py 的 jenv 中注册。
限制:v14/v15 的 wkhtmltopdf 不支持 flexbox,V16 改用 Chrome PDF 才支持现代 CSS;| safe 仅限可信 HTML;自定义方法与过滤器必须只读、快速且能处理空值。调试可查错误日志,或在 bench console 用 frappe.render_template。修订命令:bench --site sitename migrate 与 bench --site sitename clear-cache。