用途:在 Frappe Framework 中创建与修改 DocType(核心数据模型抽象),适合新建标准、单条、子表、可提交、树形或虚拟 DocType,添加或修改字段,编写控制器逻辑,配置命名、权限与工作流。
主要能力:支持多种 DocType 类型(标准、Single、Child Table、Submittable、Tree、Virtual);字段定义含 fieldname、fieldtype、label、options、reqd;控制器生命周期钩子如 validate、before_save、after_insert;命名方式包括 field:fieldname、naming_series:、hash、format:PREFIX-{####};权限按角色配置读写创建删除提交取消,并支持 User Permission 行级过滤;可选 Workflow 配置状态与流转。
使用方式:先确认环境,执行 bench --site <site> console 后检查 frappe.conf.developer_mode 必须为 True,否则改动不会导出为文件。通过 UI(DocType List → New)或代码方式创建,JSON 置于 <app>/<module>/doctype/<doctype_name>/<doctype_name>.json,控制器为同名 .py。改完须运行 bench --site <site> migrate 应用架构变更。
适用场景:构建数据模型、加字段、实现业务校验与副作用、配置自动命名与权限、搭建父子表关系。
限制与注意:文档未提供安装命令与版本信息。仅 developer_mode=1 时导出文件;命名系列前缀避免与现有 DocType 冲突;子表需单独测试;fieldname 用 snake_case 且不超过 140 字符,避开 SQL 保留字;控制器类名须为 DocType 名的 PascalCase;避免循环 Link 依赖;关键字段设 in_list_view 才能在列表显示。