首页 > 解决方案 > Django Restframework 上的 ParseError

问题描述

我使用 Django 3.2 为我的项目创建了一个自定义用户模型。要在我使用 restframework 的用户中发布/放置详细信息。

但是,在为“PUT”操作提供数据以更改一些更改时,我收到错误消息JSON parse error - Expecting value: line 1 column 1 (char 0)

def update_masteruser(request,pk):
    try: 
        user = MasterUser.objects.get(pk=pk) 
    except MasterUser.DoesNotExist: 
        return JsonResponse({'message': 'The User does not exist'}, status=status.HTTP_404_NOT_FOUND) 
 
    if request.method == "PUT":
        user_data = JSONParser().parse(request)  #problem seems to be on this line
        serializer = RegisterUserSerializer(user, data=user_data)
        if serializer.is_valid(): 
            serializer.save() 
            return JsonResponse(serializer.data) 
        return JsonResponse(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

替代方法,这会抛出'WSGIRequest' object has no attribute 'data'

def update_masteruser(request,pk):
    try: 
        user = MasterUser.objects.get(pk=pk) 
    except MasterUser.DoesNotExist: 
        return JsonResponse({'message': 'The User does not exist'}, status=status.HTTP_404_NOT_FOUND) 
    if request.method == "PUT":
        serializer = MasterUserSerializer(user, data=request.data)
        data = {}
        if serializer.is_valid():
            serializer.save()
            data["success"] = "updated"
            return Response(data=data)
        return Response(serializer.data)

序列化程序.py

class MasterUserSerializer(serializers.ModelSerializer):
    class Meta:
        model = MasterUser
        fields = "__all__"

我搜索了错误原因,但找不到原因。为什么它不能解析请求中的数据?

标签: python-3.xdjangodjango-rest-framework

解决方案



推荐阅读