2.4 KiB
2.4 KiB
CRUD 代码生成器
这是一个 Django 管理命令,用于根据模型自动生成完整的 CRUD 代码,包括后端 API 和前端页面。
使用方法
基本用法
# 只生成后端代码
python manage.py generate_crud <app_name> <model_name>
# 同时生成前端和后端代码
python manage.py generate_crud <app_name> <model_name> --frontend
示例
# 为 system 应用的 Dept 模型生成 CRUD 代码
python manage.py generate_crud system Dept --frontend
生成的文件
后端文件
-
序列化器:
backend/{app_name}/serializers.py- 继承
CustomModelSerializer - 自动处理 creator 和 modifier 字段
- 继承
-
视图集:
backend/{app_name}/views/{model_name.lower()}.py- 继承
CustomModelViewSet - 包含基本的 CRUD 操作
- 自动配置过滤、搜索、排序字段
- 继承
前端文件(使用 --frontend 参数时)
-
模型定义:
web/apps/web-antd/src/models/{app_name.lower()}.ts- TypeScript 接口定义
- 继承 BaseModel
-
API 接口:
web/apps/web-antd/src/api/{app_name.lower()}/{model_name.lower()}.ts- 完整的 CRUD API 函数
- TypeScript 类型定义
-
列表页面:
web/apps/web-antd/src/views/{app_name.lower()}/{model_name.lower()}/list.vue- 使用 VxeTable 的列表页面
- 包含增删改查操作
-
表单配置:
web/apps/web-antd/src/views/{app_name.lower()}/{model_name.lower()}/data.ts- 表单字段配置
- 表格列配置
-
表单组件:
web/apps/web-antd/src/views/{app_name.lower()}/{model_name.lower()}/modules/form.vue- 可复用的表单组件
- 支持创建和编辑
特性
- 自动字段映射: 根据 Django 模型字段自动生成对应的前端表单字段
- 类型安全: 自动生成 TypeScript 类型定义
- 审计字段: 自动处理 creator、modifier 等审计字段
- 软删除: 自动过滤已删除的记录
- 分页支持: 自动配置分页功能
- 搜索过滤: 自动配置搜索和过滤字段
注意事项
- 确保模型继承自
CoreModel以获得审计字段支持 - 前端代码需要根据实际需求进行调整
- 路由配置需要手动添加到 Django 的 URL 配置中
- 前端路由需要手动配置
自定义
你可以根据需要修改生成器代码来:
- 调整生成的代码模板
- 添加更多字段类型支持
- 自定义表单验证规则
- 添加更多前端组件支持