用途:在 Django 项目中构建 REST API 时提供 Django REST Framework(DRF)的常用模式参考,触发场景为使用 ViewSets、Serializers、Filters 开发 REST 接口。
主要能力:
- ViewSet 模式:基于 viewsets.ModelViewSet 定义 queryset、serializer_class、filterset_class 与 permission_classes,可通过 get_serializer_class 按 action 切换序列化器,并用 @action 装饰器添加自定义动作(如 activate)。
- Serializer 模式:区分读取、创建、更新序列化器;读取用 SerializerMethodField 计算字段并设置 read_only_fields;创建用 write_only 密码字段并在 create 中 set_password;更新仅暴露可改字段。
- 过滤:使用 django_filters.rest_framework 的 FilterSet,支持 CharFilter(icontains)、BooleanFilter、DateTimeFilter(gte/lte)等。
- 权限:继承 BasePermission,实现 has_object_permission(如 IsOwner)或 has_permission(如 IsAdminOrReadOnly)。
- 分页:继承 PageNumberPagination 设置 page_size、page_size_query_param、max_page_size,并在 settings.py 的 REST_FRAMEWORK 中配置 DEFAULT_PAGINATION_CLASS。
- 路由:用 DefaultRouter 注册 ViewSet,通过 include(router.urls) 挂载到 api/v1/ 等前缀。
- 测试:使用 pytest 与 rest_framework.test.APIClient,配合 force_authenticate 构造已认证客户端,用 @pytest.mark.django_db 标记数据库测试。
使用方式:按上述模式编写视图、序列化器、过滤器与路由;常用命令包括 python manage.py runserver、makemigrations、migrate、createsuperuser、shell。
适用场景:需要快速搭建规范 REST API 的 Django 项目,尤其是用户、文章等资源的增删改查与自定义动作。
限制:资料未提供安装步骤、版本要求、收费信息及具体平台支持,暂未提供。