gpt4 book ai didi

python - Django 休息框架没有正确读取 JSON

转载 作者:太空宇宙 更新时间:2023-11-04 10:39:28 25 4
gpt4 key购买 nike

所以我正在使用一个基本的 API View :

@api_view(['GET'])
def load_info(request,user_id):
user = User.objects.get(pk=user_id)
profile = user.profile
serialized = ProfileSerializerInfo(profile,data=request.DATA)
print serialized.data
if serialized.is_valid():
return Response(serialized)
else:
return Response(serialized.errors)

现在 print serialized.data 返回了用户的全部信息,然而返回的 JSON 是 serialized.errors,其中说:

{
"user": [
"This field is required."
]
}

为什么 Django 休息框架没有注意到 JSON 中的用户字段?

注意事项

这是 serialized.data 的样子:

{'user': {u'id': 22, ...}, 'follower_count':3452,...}

我还尝试将 serialized.data 传递给 Response,但这也不起作用。

根据要求,这是序列化程序:

class ProfileSerializerInfo(serializers.ModelSerializer):
user = UserSerializer()

class Meta:
model = Profile

最佳答案

您可以发布 ProfileSerializerInfo 的定义吗?您是否正在使用嵌套序列化程序?

您可以在 ProfileSerializerInfo 上尝试 user = UserSerializer(many=False, required=False)

也从 here 找到了这个:

您需要使用 partial=True 来更新包含部分数据的行:

serializer = UserSerializer(user, data=request.DATA, partial=True)

来自 docs :

By default, serializers must be passed values for all required fields or they will throw validation errors. You can use the partial argument in order to allow partial updates.

关于python - Django 休息框架没有正确读取 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21532639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com