Django rest framework 路由器“详细信息”路由中是否需要查找字段?

Django rest framework 路由器“详细信息”路由中是否需要查找字段?,django-rest-framework,django-rest-viewsets,Django Rest Framework,Django Rest Viewsets,查看这里:示例有pk=None: @detail_route(methods=['post'], permission_classes=[IsAdminOrIsSelf]) def set_password(self, request, pk=None): 并表示将生成以下url模式:^users/{pk}/set_password/$ 在这里:它还表示lookup字段位于url:{prefix}/{lookup}/{methodname}/ DRF是否将lookup值传递给detail\u

查看这里:示例有
pk=None

@detail_route(methods=['post'], permission_classes=[IsAdminOrIsSelf])
def set_password(self, request, pk=None):
并表示将生成以下url模式:
^users/{pk}/set_password/$

在这里:它还表示
lookup
字段位于url:
{prefix}/{lookup}/{methodname}/

DRF是否将
lookup
值传递给
detail\u route
方法?根据文档,看起来是这样的,但在这里:

如果向下滚动到:

@detail_route()
    def group_names(self, request):
        """
        Returns a list of all the group names that the given
        user belongs to.
        """
        user = self.get_object()
        groups = user.groups.all()
        return Response([group.name for group in groups])
不要求将查找值作为
group\u names
函数的参数。我的问题是:

1)
pk
/在
详细信息\u路线中是否需要查找字段参数

2) 如果没有,那么
self.get_object()
如何知道要获取哪个对象

3) 此外,如果没有,那么不应该使用
@list\u route
,因为甚至没有使用查找

编辑:在这里:它还表示@detail\u路由装饰器在其URL模式中包含pk,用于需要单个实例的方法。

1) 详细信息路由中是否需要pk/a查找字段参数

对。感谢您发现它,它已在存储库中修复,并将在下次生成文档时更新

2) 如果没有,那么self.get_object()如何知道要获取哪个对象

视图的参数/关键字参数存储在get_对象使用的
view.args
view.kwargs

3) 此外,如果没有,那么不应该使用@list_路由,因为甚至没有使用查找

它是通过self.get_对象使用的,该对象返回相关的用户,因此它是一个细节路由