bibi45

2020-07-02 | 后端 中文

DRF ViewSet 与 Router:资源路由的约定

bibi45

用 ViewSet 统一一组资源操作,并理解 Router 自动生成 URL 的边界。

ModelViewSet 为同一资源提供 list、retrieve、create、update、partial_update 和 destroy。Router 负责将这些 action 绑定为 URL。

router = DefaultRouter()
router.register("projects", ProjectViewSet, basename="project")
urlpatterns = router.urls

当 ViewSet 只有动态 get_queryset()、没有类属性 queryset 时,应明确设置 basename。Router 的前缀不应自己再加末尾斜杠,末尾斜杠策略由 Router 统一管理。

© 2026 bibi45. 保留所有权利。

静态网站,内容由 Git 管理。