关于 cdrf-expert
cdrf-expert 是一项帮助 Django REST framework 开发者理解基于类的视图内部机制的技能。它依据 DRF 版本、类继承关系和请求生命周期,推荐合适的视图类与最小覆盖点,并提示回归风险和测试方向。
主要功能
- 01按请求类型分类 DRF 问题
- 02依据版本查阅 CDRF 参考
- 03追踪类继承与方法来源
- 04选择合适的视图类和覆盖钩子
- 05检查常见回归风险并建议测试
适用场景
- 01选择 APIView、泛型视图或 ViewSet
- 02定位请求到响应的执行流程
- 03调试方法解析顺序与来源
- 04比较不同 DRF 版本的行为
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ vintasoftware/ django-ai-plugins --skill cdrf-expert安装后在 Claude Code 中输入/cdrf-expert确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/class-selection-matrix.mdlifecycle-and-overrides.mdmro-debugging-playbook.mdversion-check-workflow.md详细介绍
CDRF 专家
说明
- 对请求进行分类。
将用户请求归入一个或多个类别:
- 类选择(APIView 与 GenericAPIView、具体泛型视图、ViewSets)
- 生命周期追踪(请求到响应的流程)
- 覆写策略(自定义哪个钩子)
- MRO 调试(方法来自哪个 mixin / 基类)
- 版本差异(DRF 不同版本之间行为的变化)
- 仅阅读所需的参考文件。
加载最少的必要上下文:
- 类选择:
references/class-selection-matrix.md - 钩子位置和生命周期:
references/lifecycle-and-overrides.md - MRO / 方法来源追踪:
references/mro-debugging-playbook.md - DRF 版本比较:
references/version-check-workflow.md
- 按版本优先原则浏览 cdrf.co。
- 根据用户提供的上下文确定项目的 DRF 版本。
- 如果未知,询问版本,或提供与版本无关的答案,并明确标注假设。
- 首先打开匹配的 CDRF 版本命名空间(例如
https://www.cdrf.co/3.16/)。 - 打开目标类页面并提取:
- 祖先类和 MRO
- 可用方法及每个方法所属的源类
- 影响行为的默认属性(
queryset、serializer_class、分页 / 过滤后端)
- 选择最精简的覆写点。
- 优先使用精细的钩子(
perform_create、perform_update、perform_destroy),而不是范围更广的方法(create、update、destroy)。 - 对每个请求的行为,优先使用
get_queryset和get_serializer_class,而不是硬编码类属性。 - 将 HTTP 流程编排保留在视图方法中,并将业务 / 领域逻辑放在视图之外。
- 除非请求需要改变行为,否则保留 DRF 默认行为。
- 根据方法流程给出有依据的答案。
返回:
- 建议使用的类
- 要覆写的方法
- 这些方法在 MRO / 生命周期中为何合适
- 简洁的代码补丁或框架
- 风险 / 回归问题及建议添加的测试
- 定稿前进行验证。
检查常见回归问题:
- 意外绕过权限 / 身份验证 / 过滤 / 分页钩子
- 在序列化器和视图之间重复对象保存逻辑
- 只需覆写精细钩子时却覆写了范围更广的方法
- 依赖所选 DRF 版本中不存在的方法
错误处理
- 如果 cdrf.co 无法访问,说明这一限制,并改用 DRF 官方文档和已安装的源码。
- 如果用户无法提供 DRF 版本,提供与版本无关的方案,并明确标注假设。
- 如果有多个可行的覆写点,优先建议最精简的钩子,并解释其中的权衡。
输出规则
- 引用 CDRF 中准确的类名和方法名。
- 如果 DRF 版本未知,说明相关假设。
- 聚焦于 DRF 基于类的视图内部机制和可执行的代码改动。
评论
支持 Markdown