python-3.x - 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__"
我搜索了错误原因,但找不到原因。为什么它不能解析请求中的数据?
解决方案
推荐阅读
- laravel - Image is not validating: "The avatar must be an image"
- xslt - XSLT 输出为空 调试失败,无输出
- php - 在数组中添加字符串
- java - 谷歌日历 api 删除未来事件
- python - Django connection mysql error, showing the target computer actively refused
- python - 求幂运算的模数初学者问题
- python - 输入未静音/正确指向函数中的新分配
- scope - 跨多个模块访问单例
- php - SQL 语法错误 Maria DB 服务器 Mysqli_query
- sql - sql queries : IN vs equal