Я написал серию определений RegexValidator, которые я вызываю на входах модели django. Вот пример:
def fein_validator(value):
err = None
for validator in FEIN_VALIDATOR:
try:
validator(value)
return value
except ValidationError as exc:
err = exc
raise err
Для справки FEIN_VALIDATOR
для этого метода ниже. Обратите внимание, что в этом примере есть только один элемент, у меня есть другие валидаторы, которые имеют несколько элементов (отсюда for loop
):
FEIN_VALIDATOR = [
RegexValidator(r'^\d{2}-\d{7}$')
]
Метод работает отлично и выдает ошибку, когда он должен. Но выдается ошибка Enter a valid value.
, и я хотел бы настроить возврат более конкретно.
Я пробовал версии этого и этого . Но все это предполагает, что есть только один проход. Я пытаюсь запустить серию валидаторов, используя for loop
.
Вопрос 1: работает ли для этого конструкция метода, которую я использую, или для каждой проверки должен быть отдельный метод? [посредством чего я могу добавить пользовательские сообщения.]
Вопрос 2: если это работает, как мне изменить сообщение об ошибке на пользовательское сообщение?