Как я могу выдать предупреждение с помощью ceberus, если ключ отсутствует? - PullRequest
1 голос
/ 28 мая 2020

Cerberus допускает обязательные поля, но я хотел бы иметь «предпочтительный» класс полей, чтобы в случае их отсутствия регистрировалось предупреждающее сообщение. Вот некоторые идеи, которые у меня не кажутся хорошими:

  1. Я мог бы расширить валидатор с помощью настраиваемого правила , но они вызываются с помощью field и value аргументов, что заставляет меня подозревать, что эта функция будет вызываться для отсутствующих полей. __ validate_required_fields , который вызывается в документе для генерации недостающих полей, было бы более идеальным, но я не уверен, как это зацепить.

  2. Cerberus предлагает check_with , но опять же, я не уверен, будет ли это вызвано для отсутствующих полей.

  3. Я мог бы попытаться отметить их, как требуется, и выполнить трассировку в обработчик ошибок. Это не идеально, потому что проверка не должна завершиться ошибкой, если «предпочтительные» поля отсутствуют.

1 Ответ

0 голосов
/ 14 июня 2020
  1. Ваше подозрение верно, поля, которых нет в документе, не проверяются полностью. И __validate_required_fields не предназначен для переопределения (изменение имени не удастся из-за двух ведущих __).

  2. Это не так, как в 1.

  3. Лучше всего это можно сделать, переопределив метод validate и обработав различные (!) Контейнеры ошибок.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...