Python 棉花糖电子邮件自定义验证消息
我使用以下模式验证数据:Python 棉花糖电子邮件自定义验证消息,python,flask-marshmallow,Python,Flask Marshmallow,我使用以下模式验证数据: class UserSchema(db_schema.Schema): email = data_fields.Email(required = True, error_messages={ 'required': 'Email is mandatory field.', 'type': 'The manager email is not valid.' }) 但是ValidationError.me
class UserSchema(db_schema.Schema):
email = data_fields.Email(required = True,
error_messages={
'required': 'Email is mandatory field.',
'type': 'The manager email is not valid.'
})
但是ValidationError.messages.items具有以下消息:
"Not a valid email address."
如何让它显示我的自定义消息?是否有错误消息字典可能值的全面列表,因为我怀疑我也需要覆盖其他消息。我发现错误消息字典错误,密钥应为“无效”: 看看 Field类定义了“required”、“null”和“validator\u failed” 特定字段实现继承这些消息,并可能扩展列表。e、 g.电子邮件定义了附加错误消息“无效” 注意:看起来电子邮件和其他字段会覆盖默认的错误消息(而不是扩展它们),但实际上错误消息是“收集”的,包括父类
class Field(FieldABC):
...
# Collect default error message from self and parent classes
messages = {} # type: typing.Dict[str, str]
for cls in reversed(self.__class__.__mro__):
messages.update(getattr(cls, "default_error_messages", {}))
messages.update(error_messages or {})
self.error_messages = messages
...
您的操作是正确的,但要使用的密钥是“validator_failed”。验证失败时,这将覆盖默认错误消息
class Field(FieldABC):
...
default_error_messages = {
"required": "Missing data for required field.",
"null": "Field may not be null.",
"validator_failed": "Invalid value.",
}
...
class Email(String):
...
default_error_messages = {"invalid": "Not a valid email address."}
...
class Field(FieldABC):
...
# Collect default error message from self and parent classes
messages = {} # type: typing.Dict[str, str]
for cls in reversed(self.__class__.__mro__):
messages.update(getattr(cls, "default_error_messages", {}))
messages.update(error_messages or {})
self.error_messages = messages
...
error_messages = {
'required': 'Missing data for required field.',
'null': 'Field may not be null.',
'validator_failed': 'Invalid value.',
}