gpt4 book ai didi

Django 序列化程序 : What does is_valid actually do?

转载 作者:行者123 更新时间:2023-12-03 18:45:46 30 4
gpt4 key购买 nike

git repo :
django tutorial

我一直在关注上述 django 项目,该项目着眼于创建人与人之间的聊天。我遇到过这部分:

def message_list(request, sender=None, receiver=None):
...

elif request.method == 'POST':
print('posting')
data = JSONParser().parse(request)
print(data)
serializer = MessageSerializer(data=data)
print(serializer)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)

class MessageSerializer(serializers.ModelSerializer):
sender = serializers.SlugRelatedField(many=False, slug_field='email', queryset=User.objects.all())
receiver = serializers.SlugRelatedField(many=False, slug_field='email', queryset=User.objects.all())

class Meta:
model = Message
fields = ['sender', 'receiver', 'message', 'timestamp']
"if serializer.is_valid():" 是什么意思实际上呢?是否检查消息中的数据是否与用户配置文件中的数据匹配?我以前从未使用过序列化程序,可以使用它的解释。

谢谢

最佳答案

您需要调用is_valid在将数据写入数据库之前的反序列化过程中。 is_valid执行validation输入数据并确认该数据包含所有必填字段并且所有字段都具有正确的类型。如果验证过程成功is_valid设置 validated_data用于在 DB 中创建或更新数据的字典。否则序列化器的属性 errors将包含有关输入数据错误的信息,您可以在 View 中将此信息作为 HTTP 响应发送。

关于Django 序列化程序 : What does is_valid actually do?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49827919/

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