Cerberus META验证规则访问

时间:2019-06-19 13:49:44

标签: python validation cerberus

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

我的目标是output = [(x, y) for x in x_coords for y in y_coords] 并想在我的错误消息中使用标签。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

回答我自己的问题。

我创建了一个自定义的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))

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