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/
一起工作,因此不是在查询字符串中,而是在路径中。