Django rest framework 执行get_queryset而不是get_对象

Django rest framework 执行get_queryset而不是get_对象,django-rest-framework,Django Rest Framework,我正在尝试使用get_object从数据库中检索单个对象。但是,我的代码总是进入get\u queryset而不是get\u object,因此我总是返回一个对象列表 这是我的视图集: class DiagramView(viewsets.ModelViewSet): queryset = Diagram.objects.all() serializer_class = DiagramSerializer pk_url_kwarg = 'id' def get_

我正在尝试使用
get_object
从数据库中检索单个对象。但是,我的代码总是进入
get\u queryset
而不是
get\u object
,因此我总是返回一个对象列表

这是我的视图集:

class DiagramView(viewsets.ModelViewSet):
    queryset = Diagram.objects.all()
    serializer_class = DiagramSerializer
    pk_url_kwarg = 'id'

    def get_object(self, *args, **kwargs):
        return self.queryset.get(id=kwargs.get('id'))

    def get_queryset(self):
        print('im here')
我的路线是:

router.register('api/diagramsingle', DiagramView, 'diagramsingle')
我是这样进入这条路线的:

api/diagramsingle/?id=1
谢谢您的回答。

如中所述,对于
SimpleRouter
,详细视图具有模式
api/diagramsingle/
,因此您可以通过以下方式访问单个对象:

api/diagramsingle/1/
api/diagramsingle/1/
如果在路径中指定主键,而不是在查询字符串中指定主键。

如中所述,对于
SimpleRouter
,详细视图具有As模式
api/diagramsingle/
,因此您可以通过以下方式访问单个对象:

api/diagramsingle/1/
api/diagramsingle/1/

在路径中指定主键,而不是在查询字符串中。

如果它是一个简单的路由器,它将与
api/diagramssingle/1/
一起工作,因此不是在查询字符串中,而是在路径中。如果它是一个简单的路由器,它将与
api/diagramssingle/1/
一起工作,因此不是在查询字符串中,而是在路径中。