SuperAPI AI 工具集

django-orm-lens

Django ORM Lens 是一款针对 Django ORM 的静态分析工具,无需数据库或启动 Django 即可解析模型、关系、迁移依赖、缺失索引,并生成 ER 图与信号图。它提供 VS Code 扩展、命令行工具和 MCP 服务器三种使用方式,支持 ER 图生成、N+1 查询检测、迁移风险检查、模式漂移检测等功能。该工具免费且采用 MIT 许可证,适用于 Django 开发者快速理解项目结构、进行代码审查和 CI 集成。

访问官网

工具介绍

Django ORM Lens 是一款用于 Django ORM 的静态分析工具,无需数据库、无需运行 runserver、无需可用的虚拟环境,即可解析 Django 项目的模型图。它提供三种使用界面:VS Code 扩展、命令行工具(CLI)和 MCP 服务器,三者共享同一个解析核心。

主要能力

  • ER 图生成:通过 Mermaid 实体关系图展示整个数据库模式,支持外键、一对一、多对多关系的基数箭头,可导出为 SVG。
  • N+1 查询检测:静态分析循环中未使用 select_related 或 prefetch_related 的外键/多对多访问。
  • 迁移风险检查:标记 migrations/*.py 中的危险操作,支持 16 条 CLI 侧迁移风险规则。
  • 模式漂移检测:无需启动 Django 即可检查模型声明与迁移文件是否一致,仅当字段声明但未迁移时构建失败。
  • 内联诊断与快速修复:18 条编辑器侧检查规则(DOL001–DOL041),采用 Ruff 风格代码和 Clippy 风格适用性,支持按规则覆盖严重级别。
  • 工厂生成器:右键模型即可生成 factory_boy 的 DjangoModelFactory 脚手架,根据字段类型使用 Faker 提供者。
  • 时间旅行模式差异:选择两个提交,生成类型化的差异,支持重命名检测(Levenshtein + 字段形状 Jaccard)。
  • 影响分析:右键字段或模型,扫描整个工作区,按 Django 层(模型、序列化器、表单、管理、视图、URL、模板、测试、迁移)分组,并标注置信度。
  • 交互式查询构建器:右键字段或模型,选择模板,在光标处插入代码片段,自动追加 select_related、prefetch_related 等。
  • MCP 服务器:为 AI 编码代理提供 13 个只读工具,支持工作区解析和沙箱。

使用方式

  • VS Code / Cursor / Windsurf:从 VS Code Marketplace 安装扩展。
  • VSCodium / code-server / Gitpod:从 Open VSX 安装。
  • 终端与 AI 编码代理:通过 pipx 或 uvx 运行 CLI,需要 Python 3.9+,CLI 零运行时依赖。
  • Docker:支持多架构(amd64 + arm64),无需主机安装 Python,适合 CI 和一次性审计。
  • MCP 设置:通过一个 JSON 块配置,将 DJANGO_ORM_LENS_ROOT 指向 Django 项目的绝对路径。

适用场景

  • 加入拥有 10 个以上应用、models.py 分散的 Django 代码库的开发者。
  • 合同/自由职业工程师需要在第一小时内理解不熟悉的 Django 项目。
  • 团队入职新员工,希望无需搭建文档基础设施即可获得模式视图。
  • AI 代理高级用户(Cursor / Aider / Zed / Continue 等)需要代理准确回答模式问题,而无需数据库凭据或启动 Django。
  • CI 流水线验证模式形状(例如是否意外破坏了 related_name),无需导入项目。
  • 独立开发者面对损坏的虚拟环境或他人的笔记本电脑,无需 runserver 或 manage.py migrate。

限制

  • 该工具专注于静态分析,不进行实时请求分析。实时请求分析建议使用 django-debug-toolbar,历史请求分析使用 django-silk,测试套件中的查询计数断言使用 django-perf-rec,生产环境 APM 使用 Scout / Sentry。
  • 部分功能(如 impact、blast-radius、drift、stats-sql)需要 py-1.7.0 或更高版本。
  • 迁移风险检查目前有 15 条规则(截至 v0.6.0)。
  • 该工具免费且采用 MIT 许可证,无付费层级,无席位限制,无账户,无遥测。