Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更新用户REST框架Django_Python_Django_Python 3.x_Django Rest Framework - Fatal编程技术网

Python 更新用户REST框架Django

Python 更新用户REST框架Django,python,django,python-3.x,django-rest-framework,Python,Django,Python 3.x,Django Rest Framework,我需要在REST框架中更新我的用户 class UserUpdate(APIView): permission_classes = (permissions.IsAuthenticated,) def post(self,request): user=User.objects.get(id=request.user.id) try: user_serializer=UserSerializer(request.user,d

我需要在REST框架中更新我的用户

class UserUpdate(APIView):
    permission_classes = (permissions.IsAuthenticated,)

    def post(self,request):
        user=User.objects.get(id=request.user.id)
        try:
            user_serializer=UserSerializer(request.user,data=request.data, partial=True)
            if user_serializer.is_valid():
                user_serializer.save()
                return Response(user_serializer.data, status=status.HTTP_201_CREATED)
            else:
                return Response(user_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
        except:
            return JsonResponse({'status':0,'message':'Error on user update'})
视图.py

class UserUpdate(APIView):
    permission_classes = (permissions.IsAuthenticated,)

    def post(self,request):
        user=User.objects.get(id=request.user.id)
        try:
            user_serializer=UserSerializer(request.user,data=request.data, partial=True)
            if user_serializer.is_valid():
                user_serializer.save()
                return Response(user_serializer.data, status=status.HTTP_201_CREATED)
            else:
                return Response(user_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
        except:
            return JsonResponse({'status':0,'message':'Error on user update'})
序列化程序.py

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ['id', 'first_name', 'last_name', 'avatar']
class User(AbstractUser):
    fb_userid = models.CharField(max_length=256)
    avatar = models.ImageField(upload_to='avatars/', blank=True, null=True)
型号.py

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ['id', 'first_name', 'last_name', 'avatar']
class User(AbstractUser):
    fb_userid = models.CharField(max_length=256)
    avatar = models.ImageField(upload_to='avatars/', blank=True, null=True)
答复: 详细信息:密钥(用户名)=()已存在


@YKH是对的。此代码很好。您的帖子数据中可能有错误

在图像中,您正在标题中传递两个参数。有可能你传错了头球。
内容类型不应用于表单数据

我发现这篇文章中有人与您有类似的问题:


在您的图片上,似乎您正在将某些内容放入标题选项卡中。邮递员会帮你处理的,所以你不应该在那里定义任何东西。您可以在不设置任何标题的情况下重试吗?

{“id”:2,“first_name”:“,“last_name”:“,“avatar”:null}请检查邮递员图像您询问的url是否为update_user,此url是否连接到此posyt方法?是的,我正在尝试使用此url发布数据,但您仍然无法更改用户?您能否
打印(request.data,user\u serializer.validated\u data)
内部
如果user\u serializer.is\u valid()