我知道每个人都会讨厌这个问题,因为它与django 1.5和rest-framework 2.4.6有关,但这是因为这是我们的产品最初构建的,直到我们切换所有我们的服务器到我们的新代码,我们必须支持它。我尝试创建api但是在尝试访问该页面时收到此TypeError
:
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)
我不知道为什么会出现这个错误。我已经多次更改了我的正则表达式而没有更好的结果,我也查看了标题,看看它们是否引起了混淆。每个都无济于事。我不知道发生了什么,任何帮助都将不胜感激。提前谢谢!
修改:您也可能想知道网址的/api/call-history/
部分来自哪里,但是来自此网站之前被点击的网址文件中的部分,以及我知道他们工作正常,但如果你想看到这些线条,我很乐意提供它们。
答案 0 :(得分:2)
APIView的get()
方法的第一个参数应该是request
对象。您可以从uuid
获取self.kwargs
。
class CallHistoryView(APIView):
def get(self, request, *args, **kwargs):
uuid = self.kwargs['uuid']
return Response({}, status=status.HTTP_200_OK)