gpt4 book ai didi

python - 如何将自定义错误消息附加到 Django Rest Framework 验证?

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:01 24 4
gpt4 key购买 nike

我有一个简单的 View 集,

class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
# more properties below.

def create(self, request, *args, **kwargs):
serialized_data = UserSerializer(data=request.data)

if serialized_data.is_valid():
# method to create a user.
return Response(status=status.HTTP_201_CREATED)

else:
print serialized_data.errors,
print serialized_data.error_messages

return Response(status=status.HTTP_404_NOT_FOUND)

它使用以下序列化器,

class UserSerializer(serializers.ModelSerializer):
error_messages = {}

class Meta:
model = User
fields = ("first_name", "email", 'password', "username")
extra_kwargs = {"password": {"write_only": True}}

def validate_email(self, value):
required_value = "" #something that doesn't matter here
if value is not required_vaue:
# i want to append the custom error message to the serializer
error_messages = {"email": {"invalid": "the email is not acceptable!"}}

return value

我正在尝试使用自定义 validate_email 将自定义错误消息注入(inject)/附加到序列化器的错误寄存器中方法,这样我就可以将它与 serialized_data.error_messages 一起使用.

最佳答案

您应该提出验证错误:

raise serializers.ValidationError("the email is not acceptable!")

或者尝试编写自定义验证器 http://www.django-rest-framework.org/api-guide/validators/#writing-custom-validators

官方文档中没有,但您可以尝试将错误消息附加到self.errors[field_name]

关于python - 如何将自定义错误消息附加到 Django Rest Framework 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38354770/

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