Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django DRF:如何在使用@detail_route时移动URL末尾的查找字段_Django_Django Rest Framework_Django Urls - Fatal编程技术网

Django DRF:如何在使用@detail_route时移动URL末尾的查找字段

Django DRF:如何在使用@detail_route时移动URL末尾的查找字段,django,django-rest-framework,django-urls,Django,Django Rest Framework,Django Urls,我正在尝试创建@detail_路由,但默认路由器的URL是/api/v1/stores/section/{id}/items/ class MyViewSet(viewsets.ViewSet): serializer_class = TestSerializer @detail_route(methods=['get']) def items(self, request, pk=None): 但是我想像这样移动URL末尾的lookup字段/api/v1/stores

我正在尝试创建@detail_路由,但默认路由器的URL是/api/v1/stores/section/{id}/items/

class MyViewSet(viewsets.ViewSet):
    serializer_class = TestSerializer

    @detail_route(methods=['get'])
    def items(self, request, pk=None):
但是我想像这样移动URL末尾的lookup字段/api/v1/stores/section/items/{id}/

class MyViewSet(viewsets.ViewSet):
    serializer_class = TestSerializer

    @detail_route(methods=['get'])
    def items(self, request, pk=None):

如果不使用Django url模式作为或通过来处理此情况,则无法执行此操作。

如果不使用Django url模式作为或通过来处理此情况,则无法执行此操作。

@action(detail=True,url_path='/(?p[^/]+)/)
@action(detail=True, url_path='/(?P<extra_id>[^/.]+)/')
def items(self, request, extra_id):
def项目(自我、请求、额外id):
加上这个

警告:

如果错误有效,请删除“/”

您可能必须使用'extra_id'

@action(detail=True,url_path='/(?p[^/]+)/)查询items对象
def项目(自我、请求、额外id):
加上这个

警告:

如果错误有效,请删除“/”


您可能需要使用“extra\u id”查询items对象

对于此类url模式,您可能需要一个
列表路径
,而不是
详细路径
。使用
列表路径
,我们如何获得查找字段?@TasawerNawaz你可以看看这个你可能想要一个
list\u-route
而不是
detail\u-route
这样的url模式。使用
list\u-route
,我们如何获得查找字段?@TasawerNawaz你可以看看这个