我正在使用 Django 1.11,但路径参数有问题。对于涉及路径参数的所有请求,我都收到了这样的错误。Error:TypeError at /posts/2get() missing 1 required positional argument: 'pk'urls.py...url(r'^posts',PostView.as_view()),url(r'^posts/<int:pk>/',PostView.as_view()),...views.py..#-------- API for CRUD -----------------#class PostView(APIView): permission_classes = (IsAuthenticated,) def get_object(self,pk,user_id): try: return Post.objects.get(pk=pk,user_id=user_id) except Post.DoesNotExist: raise Http404 def get(self,request,pk): post = Post.objects.get(user=request.user.id) serializer = PostSerializer(post) return Response({"success":True,"data":serializer.data},status=status.HTTP_200_OK) def put(self, request, pk): post = self.get_object(pk,request.user.id) serializer = PostSerializer(post, data=request.data) if serializer.is_valid(): serializer.save(user=request.user.id) return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) def post(self,request): params = request.data params['user'] = request.user.id serializer = PostSerializer(data=request.data) serializer.is_valid(raise_exception=True) saved_data = self.perform_create(serializer) post = PostSerializer(saved_data) return Response({"success":True, "message":"Post Added Successfully","data":post.data}, status=status.HTTP_201_CREATED) def perform_create(self, serializer): return serializer.save()...网址示例:GET : localhost:8000/posts/2有人可以告诉我如何传递位置参数。
添加回答
举报
0/150
提交
取消