Вы можете выполнить проверку в самой функции:
from django.core.exceptions import ValidationError
from django.db import models
def combined_validator(value):
try:
return validator1(value)
except ValidationError:
return validator2(value)
class MyModel(models.Model):
example_field = models.CharField(
max_length=255,
validators=[combined_validator]
)
Если validator1
не обнаружит никаких проблем, то поток управления возвращается, и, таким образом, мы в безопасности. Если он поднимает ValidationError
, то мы возвращаемся к validator2
. Если это не вызывает ошибки, то мы снова в безопасности. В противном случае ошибка вырастет из combined_validator
.