Напишите пользовательскую функцию валидации django

У меня есть поле с именем bar мне нужно написать функцию валидации для проверки этого бара в django какие условия я могу применить к этому и как должна выглядеть моя функция?

Примечание:Пожалуйста, не делитесь ссылками на валидаторы django

models.py

class Model:
    bar = models.CharField('Bar', max_length=255, blank=True, null=True)

Вы можете определить функцию, которая будет проверять значение и вызывать ошибку ValidationError [Django-doc] в случае, если условие не верно, так:

from django.core.exceptions import ValidationError

def validate_bar(value):
    if not some-condition:
        raise ValidationError('Bar should satisfy a certain condition', code='some_code')

тогда вы добавляете эту функцию к validators этого поля

class MyModel(models.Model):
    bar = models.CharField('Bar', max_length=255, blank=True, null=True, validators=[validate_bar])

обратите внимание, что валидаторы будут работать только в ModelForms, ModelAdmins, ModelSerializers и т.д. По соображениям производительности Django ORM этого не делает.

def val(v):
    if v is not None:
        try:
            if len(v) <= 255:
                return True
        except ValidationError:
            return False

работает ли это? с balnk = True, null = True и max_length

Вернуться на верх