SuperAPI AI 工具集

frappe-syntax-hooks-events

办公与效率

查看项目

更新于 10-15 22:17

技能介绍

用途:面向 Frappe 开发,说明如何通过 hooks.py 的 doc_events 为文档生命周期事件注册处理函数,理解事件执行顺序,并在不拥有 DocType 时扩展或覆盖其行为。主要能力:文档列出 Insert、Save、Submit、Cancel、Delete、Rename、Amend、Update After Submit 各操作的事件顺序与用途;doc_events 支持按 DocType 或通配符 "*" 注册,单个事件可挂多个处理函数;处理器签名为 (doc, method=None)。选择建议:校验用 validate,默认值用 before_validate,仅创建时用 after_insert,每次保存用 on_update,提交后建关联文档用 on_submit,取消时清理用 on_cancel,阻止删除用 on_trash。执行顺序:控制器方法先执行,随后按应用安装顺序执行 doc_events,通配符处理器最后执行。扩展他人 DocType 应使用 doc_events,而非修改其控制器;v16+ 推荐 extend_doctype_class,扩展类按 MRO 叠加;override_doctype_class 会完全替换控制器,仅一个应用生效。限制与规则:所有事件在同一事务内运行,任一事件抛错则整个操作回滚,事件内数据尚未提交;应使用 frappe.throw() 中止,勿在 validate 或 before_save 中调用 doc.save(),勿在 autoname 或 before_naming 之外修改 doc.name,绕过权限需显式设置 ignore_permissions,勿在 validate 中执行慢操作。资料未提供定价、平台与效果数据。