Доступ к правилу проверки Certaus META - PullRequest
0 голосов
/ 19 июня 2019

Python cerberus имеет правило проверки, называемое meta , где я назначаю dict мета-правилу. Как я должен получить к нему доступ? Я пишу собственный обработчик ошибок, используя this для настройки сообщений об ошибках.

Моя цель schema = {'a': {'type': 'integer', 'meta': {'label': 'Age'}}} и хотел бы использовать метку в моем сообщении об ошибке.

Любая помощь будет оценена.

1 Ответ

2 голосов
/ 09 июля 2019

Отвечая на мой собственный вопрос.

Я создал собственный обработчик ошибок, чтобы добавить метку к сообщениям об ошибках.

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))

Надеюсь, это поможет будущим пользователям.

...