Python 在Django Rest框架中添加特定的方法处理程序detail_路由

Python 在Django Rest框架中添加特定的方法处理程序detail_路由,python,django,django-rest-framework,Python,Django,Django Rest Framework,我有一个用Django Rest框架构建的API。其中有一个ViewSet,其中包含detail\u routes,我正试图处理嵌套数据: 从rest\u framework.mixin导入(RetrieveModelMixin、CreateModelMixin、, ListModelMixin) 从rest_framework.viewset导入GenericViewSet 类UserViewSet(RetrieveModelMixin、CreateModelMixin、ListModelMi

我有一个用Django Rest框架构建的API。其中有一个
ViewSet
,其中包含
detail\u route
s,我正试图处理嵌套数据:

从rest\u framework.mixin导入(RetrieveModelMixin、CreateModelMixin、,
ListModelMixin)
从rest_framework.viewset导入GenericViewSet
类UserViewSet(RetrieveModelMixin、CreateModelMixin、ListModelMixin、,
通用视图集)
...
@详细信息\u路线(方法=['get'],url\u路径='photos')
def照片(自我、请求):
返回响应(self.get_photos())
@详细信息路径(方法=['post'],url\u path='photos')
def新照片(自我、请求、主键=无):
新照片=照片(用户=self.request.user)
序列化程序=PhotoSerializer(数据=request.data,
实例=新照片)
如果序列化程序.u有效():
serializer.save()
返回响应(serializer.data,
status=status.HTTP(已创建)
返回响应(serializer.errors,status=status.HTTP\u 400\u BAD\u请求)
因此,我的目的是让这个
ViewSet
处理
GET
POST
对url的请求,如下所示:

/api/users/42/photos
其中,
GET
将返回用户id#42的照片列表,
POST
将向该用户添加新照片

但是,此视图只处理一种方法:
POST
。对于
GET
,它返回一个错误:

{“详细信息”:“不允许使用方法\\”GET\\”
如何使用
detail\u route
分别处理每个HTTP方法

当我输出此视图的路由时,调试不会显示任何明显的覆盖:

Route(url=u'^{prefix}/{lookup}/photos{trailing_slash}$',mapping={'post':'new_photo'},name=u'{basename}-photos',initkwargs={})
路由(url=u'^{prefix}/{lookup}/photos{trailing_slash}$',mapping={get':'photos'},name=u'{basename}-photos',initkwargs={})

一个选项是使用一个
详细路线处理
GET
POST
-修饰处理程序处理
GET和
POST,并在处理程序内执行附加调度:

@detail\u路由(方法=['get','post'])
def照片(自我、请求):
如果request.method==“POST”:
返回自我。新照片(请求)
返回响应(self.get_photos())

在类似的行中,是否可以使用相同的名称添加列表路线和详细路线?