2015-10-14 36 views
0

我知道每个人都会讨厌这个问题,因为它与django 1.5和rest-framework 2.4.6有关,但那是因为这是我们产品最初的原因在我们将所有服务器切换到新代码之前,我们必须支持它。我试图创建一个API,但我收到此TypeError当我试图访问这些页面:get()接收关键字参数'uuid'的多个值

TypeError at /api/call-history/41d36c79-808e-14e4-b2c9-e9137925356c/ 

get() got multiple values for keyword argument 'uuid' 

下面是我的网址文件中的要领:

UUID = r'^(?P<uuid>[\w\-]+)/' 

urlpatterns = (
    url(UUID + r'$', CallHistoryView.as_view()), 
) 

这里是我的看法目前,只是一个简单的方法存根:

class CallHistoryView(APIView): 
    def get(self, uuid): 
     return Response({}, status=status.HTTP_200_OK) 

我不知道为什么这个错误是弹出。我多次改变了我的正则表达式,没有更好的结果,并且我还查看了标题以查看它们是否导致混淆。每个都无济于事。我不知道发生了什么,任何帮助将不胜感激。提前致谢!

编辑:您也可能想知道其中的URL的/api/call-history/部分是从哪里来的,但是这是从正在这一个击中前的URL文件,我知道他们正在工作的罚款,但如果你想看到这些线条,我很乐意提供。

回答

2

APIViewget()方法的第一个参数应该是request对象。您可以从self.kwargs获取uuid

class CallHistoryView(APIView): 
    def get(self, request, *args, **kwargs): 
     uuid = self.kwargs['uuid'] 
     return Response({}, status=status.HTTP_200_OK) 
+0

DUH!哦,我的天哪,我不能相信我忘了!我一直在做这些事情已经有一段时间了,最​​近我一直在做其他项目。 :P感谢一大堆! –

相关问题