为了账号安全,请及时绑定邮箱和手机立即绑定

Django 1.11 get() 缺少 1 个必需的位置参数:'pk'

Django 1.11 get() 缺少 1 个必需的位置参数:'pk'

潇湘沐 2021-10-19 15:34:21
我正在使用 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有人可以告诉我如何传递位置参数。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 372 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号