如何将自定义DRF API视图映射到多个URL?

2024-09-30 16:28:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个API视图:

class FollowersView(ListAPIView, RetrieveAPIView):
    serializer_class = FollowerSerializer
    queryset = Follower.objects.all()

如何使它与每个操作列表和检索的不同URL一起工作

urlpatterns = [
    path('followers/', FollowersView.as_view(), name='followers'),    #all requests are captured here
    path('followers/<int:id>/', FollowersView.as_view(), name='followers-detail'),
]

现在,每个请求都被list操作捕获


Tags: pathnameview视图apiasallclass
1条回答
网友
1楼 · 发布于 2024-09-30 16:28:00

您需要在url的末尾添加$符号,否则followers/followers/123/都与listurl匹配

urlpatterns = [
    path('followers/$', FollowersView.as_view(), name='followers'),
    path('followers/<int:id>/', FollowersView.as_view(), name='followers-detail'), 
]

也可以在单个url中使用:

urlpatterns = [
    re_path('^followers(?:/(?P<pk>[0-9]+))?/$',
        FollowersView.as_view(),
        name='followers'),
]

或者你可以尝试粘贴它们:

urlpatterns = [       
    path('followers/<int:id>/', FollowersView.as_view(), name='followers-detail'), 
    path('followers/', FollowersView.as_view(), name='followers'),
]

相关问题 更多 >