1

Python cerberus有一个名为meta的验证规则,我在其中将 dict 分配给 meta 规则。我应该如何访问它?我正在编写一个自定义 error_handler 使用来自定义错误消息。

我的目标是schema = {'a': {'type': 'integer', 'meta': {'label': 'Age'}}} 并且希望在我的错误消息中使用该标签。

任何帮助,将不胜感激。

4

1 回答 1

4

回答我自己的问题。

我创建了一个自定义 error_handler 来为我的错误消息添加标签。

from cerberus.errors import BasicErrorHandler

class CustomErrorHandler(BasicErrorHandler):
    def __init__(self, schema):
        self.custom_defined_schema = schema

    def _format_message(self, field, error):
        return self.custom_defined_schema[field].get('meta', {}).get('label', field) + ': ' + super(CustomErrorHandler, self)._format_message(field, error)

val = Validator(schema, error_handler=CustomErrorHandler(schema))

希望它能对未来的用户有所帮助。

于 2019-07-09T10:07:06.667 回答