用途:审查 Django 与 Python 代码变更,在不改变代码预期行为的前提下,提升可读性、一致性与可维护性,识别 ORM 或 DRF 反模式,并遵循项目既有约定。
授权边界:默认按“仅报告”模式处理审查请求,除非用户明确表达编辑意图或宿主已授权编辑。不得批准权限、更改工具配置,也不得因本技能存在而推断写权限。未获编辑授权时只返回发现与建议,不修改文件;获授权时仅改动被审查文件,并在编辑后验证行为。
审查范围:优先使用用户明确指定的文件或目录;否则检查 git diff、git diff --cached 和 git status 以定位近期修改的 Django 或 Python 文件。若无变更文件且无明确目标,应请求目标或返回有界的空操作,不扩大到整个仓库。可阅读周边代码与项目说明文件以理解本地约定,但发现应限定在目标范围内。
主要能力:保持功能不变,不因“更整洁”而改变公共接口、输出、副作用、错误行为或用户可见行为;应用 PEP 8 与 Django 编码风格、项目既有 isort 或格式化约定、按项目习惯添加类型提示、使用 Django 内置异常与本地异常模式、保持命名一致、优先 reverse() 与 reverse_lazy()、通过 django.conf.settings 访问设置。提升清晰度:用提前返回减少嵌套、删除范围内死代码、使用描述性命名、避免复述代码的注释、优先 Django ORM、对 FK/O2O 用 select_related()、对反向 FK 或 M2M 用 prefetch_related()、优先内置功能、视图中用 get_object_or_404()、尽量用查询集操作而非 Python 侧过滤。Django 最佳实践:模型层保留领域逻辑、使用 Meta 选项与数据库约束和索引、用 TextChoices 或 IntegerChoices、视图专注 HTTP 编排、一致应用认证与权限、返回合适状态码、按项目模式选择类视图或函数视图;DRF 优先 ModelSerializer、用 ViewSet 与 routers 减少重复、用 get_queryset() 与 get_serializer_class() 处理请求相关行为、检查分页过滤排序认证权限;表单与校验在边界校验不可信输入、跨字段校验放在 clean() 或序列化器层、并发正确性用数据库约束;测试遵循仓库的 unittest 或 pytest 风格、测行为而非私有实现、必要时断言查询次数、mock 外部服务而非 Django 内部;查询与性能标记 N+1 并给出具体关系路径的 select_related() 或 prefetch_related()、存在性检查用 .exists() 而非 .count() > 0、仅在流式语义与内存行为需要时用 .iterator()、未追踪查询集消费方式前不声称优化。
平衡:避免合并无关关注点、用聪明代码替换清晰代码、过早抽象或引入依赖、在无类型区域添加类型提示、以清理之名改变行为、超出近期修改或明确指定文件。
流程:按范围规则确定有界目标,阅读周边模型、序列化器、视图、URL、测试与项目说明,检查正确性风险、Django 反模式、查询回归、授权缺口、校验缺口与约定不一致,区分具体缺陷与可选改进;仅报告模式返回发现,编辑授权模式仅应用符合条件的改进并做聚焦验证。
输出:对每个被审查文件给出简明发现或变更摘要、重要性、具体位置或代码形态、具体建议或已应用改进,以及有意超出当前范围的更广泛建议。成功标准是提升清晰度与可维护性且不改变行为、限定在有界目标内、尊重宿主授权模型。
限制:资料未提供具体安装命令、收费、价格、平台支持或效果数据,暂未提供。