SuperAPI AI 工具集

erpnext-syntax-controllers

编程与开发

查看项目

更新于 10-15 22:17

技能介绍

用途:在编写 ERPNext/Frappe DocType 的 Python Document Controller 时提供语法参考。Document Controller 是实现 DocType 服务端逻辑的 Python 类。

主要能力:覆盖常用生命周期钩子(validate、on_update、after_insert、on_submit、on_cancel、on_trash、autoname)及选择决策;控制器覆盖方式(hooks.py 的 override_doctype_class 与 doc_events);autoname 命名选项(field:、naming_series:、format:、hash、Prompt、UUID、自定义 autoname 方法)与格式占位符;可提交文档的 docstatus 生命周期;虚拟 DocType 的 get_list/get_count/get_stats;继承模式(标准、NestedSet 树形、扩展已有控制器);v15+ 类型注解;版本差异(v14/v15/v16)。

必要用法:控制器文件按 DocType 名转 PascalCase 类名、snake_case 文件名放置。关键规则:on_update 之后对 self 的字段修改不会被保存,需用 frappe.db.set_value;控制器内不要调用 frappe.db.commit();覆盖钩子时须调用 super();用 flags 防止递归。

适用场景:为 ERPNext/Frappe 应用编写或覆盖 DocType 服务端逻辑、自定义命名、处理提交与取消时的账务或库存联动。

限制:资料未提供安装命令、收费与平台信息;具体 API 签名与完整钩子列表需查阅其 references 文件(lifecycle-methods.md、methods.md、flags.md、examples.md、anti-patterns.md)。