Files
djangoadmin-wiki/DjangoAdmin_Django_AntdVue/zh/volume5/faq.md
T
2026-09-12 23:12:15 +08:00

147 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
:::tip 本章概要
代码生成器使用过程中常见问题的原因分析和解决方案。
:::
# 常见问题
## 生成后前端页面不显示
**排查步骤**:
1. **确认菜单已创建**:检查数据库 `django_menu` 表中是否有对应路径的记录
2. **确认路由组件路径**:菜单的 `component` 字段应为 `/tool/example/index`
3. **确认权限已分配**:当前用户需要有对应菜单的访问权限(超级管理员 ID=1 自动拥有所有权限)
4. **清除缓存**:退出重新登录,或清除浏览器缓存
5. **确认后端已重启**:新路由需要重启后端服务才能生效
## 如何重新生成?
完整清理流程:
```bash
# 1. 删除后端模块
rm -rf application/example
# 2. 清理 application/urls.py 中的路由配置
# 删除 path('example/', include('application.example.urls')),
# 3. 清理 application/settings.py 中的应用注册
# 删除 'application.example',
# 4. 删除前端文件
rm -rf ui/src/views/tool/example
rm ui/src/api/tool/example.ts
# 5. 删除数据库菜单
# DELETE FROM django_menu WHERE path = '/tool/example';
# 6. 重新生成
python generator.py django_example
```
## 批量生成有数量限制吗?
Web API 批量生成最多支持 50 个表。CLI 无限制,但建议逐表生成,便于排查问题。
## 树状列表是如何判断的?
当表中存在 `parent_id` 或 `pid` 字段时,自动切换为树状模板(`ui2/`),生成树形结构的增删改查页面。
树状列表与普通分页列表的区别:
| 维度 | 普通列表(ui/) | 树状列表(ui2/) |
|:----|:----|:----|
| 触发条件 | 无 parent_id/pid | 有 parent_id/pid |
| 模板数量 | 5 个组件 + 1 个 API | 4 个组件 + 1 个 API |
| 数据加载 | 分页请求 | 全量加载 + 前端 buildTree |
| 展开/折叠 | 无 | 支持 |
## CLI 报错 "No module named 'application'"
**原因**:未在项目根目录执行命令。
**解决**:确保在项目根目录(包含 `manage.py` 和 `generator.py` 的目录)执行:
```bash
cd /data/apps/DjangoAdmin_Django_EleVue
python generator.py django_example
```
## CLI 报错 "Django环境初始化失败"
**原因**:Django 环境未正确配置。
**解决**:
1. 确保已激活虚拟环境
2. 确保已安装所有依赖:`pip install -r requirements.txt`
3. 确保 `application/settings.py` 文件存在
4. 确保 MySQL 和 Redis 服务正常运行
## 生成的代码有语法错误
**可能原因**:
- 表名或字段名包含特殊字符
- 字段注释包含未转义的引号
- 数据库连接异常导致解析不完整
**解决**:
1. 使用 `--dry-run` 检查解析结果
2. 导出配置文件检查字段内容:`python generator.py django_example --dry-run --output config.json`
3. 手动修正配置文件后用 `--config` 重新生成
## 如何自定义生成的代码风格?
修改 `public/templates/` 下的模板文件。模板使用 Jinja2 语法,详见 [6.6 自定义模板](/zh/volume5/templates)。
修改模板后重新生成即可生效,不影响已有模块。
## 生成速度慢
**可能原因**:
- 数据库连接延迟高
- 表字段数量非常多(50+ 字段)
- 同时生成大量表(批量生成)
**解决**:
- 检查数据库网络连接
- 减少单次批量生成的表数量
- 使用 CLI 单表生成替代批量生成
## 生成器支持哪些数据库?
:::warning 数据库限制
代码生成器通过查询 MySQL 的 `information_schema` 获取表结构信息,**仅支持 MySQL 数据库**。
:::
## 模板语法错误如何排查?
**症状**:生成时报错 `jinja2.exceptions.TemplateSyntaxError`。
**排查步骤**:
1. 查看错误信息中的模板文件名和行号
2. 打开对应的 `.tpl` 文件检查语法
3. 常见错误:
- `{% if %}` 缺少 `{% endif %}`
- 变量名拼写错误(如 `f.nmae` 应为 `f.name`)
- 使用了未定义的变量
4. 修改模板后重新生成
## 字段识别不准确
**可能原因**:
- 字段注释格式不符合解析规则
- 字段名不在自动识别的关键词列表中
**解决**:
1. 导出配置文件:`python generator.py django_example --dry-run --output config.json`
2. 手动修改配置文件中的字段属性
3. 用配置文件重新生成:`python generator.py --config config.json`
## 总结
大部分问题可通过以下流程解决:
1. 使用 `--dry-run` 预览配置
2. 清理旧文件后重新生成
3. 确认数据库菜单和权限配置正确
4. 重启后端服务