SuperAPI AI 工具集

doctype-development

编程与开发

查看项目

更新于 10-16 00:01

技能介绍

用途:在 Frappe Framework 中创建与修改 DocType(核心数据模型抽象),适用于新建标准、单条、子表、可提交、树形等 DocType,添加或修改字段,实现控制器逻辑,设置命名序列与自动命名,配置权限与工作流,以及构建父子表关系。

主要能力:支持多种 DocType 类型(标准、Single、Child Table、Submittable、Tree、Virtual);定义字段(如 Link 类型,含 fieldname、fieldtype、label、options、reqd);编写控制器钩子(validate、before_save、after_insert 等);配置命名(autoname 支持 field:fieldname、naming_series:、hash、format:PREFIX-{####});设置角色权限与用户权限;创建 Workflow 关联状态与转换。

使用方式:先确认环境,执行 bench --site <site> console 并检查 frappe.conf.developer_mode 为 True。可通过 UI(DocType List → New)或代码方式创建,代码方式在 <app>/<module>/doctype/<doctype_name>/ 下放置同名 .json 与 .py 文件。控制器类名需为 DocType 名称的 PascalCase。修改后运行 bench --site <site> migrate 应用架构变更。

适用场景:构建数据模型、添加字段、实现业务校验与副作用、配置权限与工作流、设计父子表结构。

限制与注意:DocType 修改仅在 developer_mode = 1 时导出到文件;命名序列前缀需避免冲突;子表需单独测试;fieldname 使用 snake_case、不超过 140 字符且避开 SQL 保留字;必填字段需设 reqd: 1;字段类型需与数据匹配;避免循环 Link 依赖;关键字段需设 in_list_view: 1。复杂权限、子表模式与 Virtual DocType 可参考对应 references 文档。