用途:TurboDRF 用于在 Django 项目中快速生成 REST API。与常规 DRF 需要编写 ViewSet 和 Serializer 不同,它采用 mixin 模式:模型继承 TurboDRFMixin,并声明 turbodrf() 类方法配置暴露的字段与接口,即可自动生成 CRUD 端点。
主要能力:自动 CRUD 端点;基于角色的访问控制(RBAC);字段级权限;搜索、过滤、排序、分页;嵌套关系字段(用 __ 表示);客户端字段选择(?fields=);自动 Swagger UI 与 ReDoc 文档;编译读路径性能优化;敏感字段 deny-list、外键注入防护、启动安全门等安全机制。
使用方式:安装 pip install turbodrf(可选 pip install turbodrf[fast] 获得更快的 JSON 序列化)。要求 Python >=3.10、Django >=4.2、DRF >=3.14.0、drf-yasg >=1.21.0、django-filter >=23.0。将 turbodrf 加入 INSTALLED_APPS;模型继承 TurboDRFMixin 并定义 turbodrf() 返回字段等配置;在 urls.py 中使用 TurboDRFRouter 并 include(router.urls);在 settings.py 通过 TURBODRF_ROLES 配置角色权限,并可扩展用户模型提供 roles 属性。支持管理命令 turbodrf_check、turbodrf_benchmark、turbodrf_explain。
适用场景:需要快速为 Django 模型提供带权限控制的 REST API,尤其是涉及多租户、角色与字段级访问控制的场景。
限制:属性字段若访问关联对象,在编译路径下不工作,应改用 author__name 形式;嵌套深度默认上限为 3,可通过 TURBODRF_MAX_NESTING_DEPTH 调整;部分集成(Sentry、Keycloak、django-allauth、drf-api-tracking)为可选且实验性,需通过设置开启。生产环境不应关闭各项安全门开关。GitHub 仓库、PyPI 包与文档地址见原资料。