Пользовательская функция валидации django
я написал функцию validaiton для атрибута правильно ли это и как мне написать для того же атрибута с blank = True и add_1 является обязательным полем любые условия для добавления
add_1 = models.CharField(max_length=255)
add_2 = models.CharField(max_length=255, blank=True)
Примечание: Все валидаторы должны возвращать True или False
validators.py
def validate_add_1(value):
if value is not None:
try:
if len(value) <= 255:
return True
except ValidationError:
return False
Согласно Model Reference, когда вы добавляете атрибут "blank=True" к любому полю модели, это поле становится необязательным. Если вы хотите, чтобы поле было обязательным, не указывайте атрибут blank, поскольку по умолчанию используется значение blank=False.
Для валидатора, я не уверен, что вы пытаетесь сделать, но вы можете попробовать что-то вроде этого:
def validate_add_1(value):
val_len = False if len(value) > 255 else True
# Return True if value is not blank/null and length of value <= 255
return True if val_len and (value and value != '') else False
def validate_add_2(value):
val_len = False if len(value) > 255 else True
return True if value == '' or (value and val_len) else False
работает ли это?