You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何定义调用DRF RatingViewSet自定义action方法的URL?

如何配置URL调用RatingViewSet的自定义方法

1. 注册ViewSet到路由

在项目的urls.py里,用DRF的路由注册器自动生成包含自定义方法的路由,代码示例如下:

from django.urls import include, path
from rest_framework.routers import DefaultRouter
from . import views  # 替换成你的views文件实际路径

router = DefaultRouter()
# 注册RatingViewSet,设置基础路由前缀为ratings
router.register(r'ratings', views.RatingViewSet)

urlpatterns = [
    path('', include(router.urls)),
    # 其他项目URL配置...
]

2. 访问自定义方法的URL格式

结合注册时的基础前缀和@action里定义的url_path=r'<int:user>/<int:pizza>',完整的访问URL格式为:
/ratings/<用户ID>/<披萨ID>/

比如用户ID是2、披萨ID是7时,直接请求/ratings/2/7/就能调用get_user_pizza_rating方法。

补充说明

你代码中注释的正则写法((?P<user>\d+)/(?P<pizza>\d+)/)和当前用的<int:user>/<int:pizza>路径转换器写法都有效,DRF 3.10及以上版本支持后者这种更简洁易读的语法。另外因为设置了detail=False,这个路由挂在整个ViewSet的基础路径下,而非单个评分实例的路径。

内容的提问来源于stack exchange,提问作者tn sduser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 08:07:17