Я пытаюсь использовать пользовательскую проверку в поле модели Django CharField.Я проверяю, есть ли в имени номер.Если это так, поднимите ValidationError
.Я использую линию if name.isalpha() is False: raise ValidationError
.По какой-то причине это приравнивается к False, независимо от того, присутствует ли число в строке или нет.Я проверил, чтобы убедиться, что name
было значением, которое я ожидал, и что это действительно строка.Вот мой код:
models.py
name = models.CharField(validators=[validate_name], max_length=100, default='', unique=True)
validation.py
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _
def validate_name(name):
print(name.isalpha())
if name.isalpha is False:
raise ValidationError(
_('Name can only contain letters A-Z. Not numbers.'),
params={'name': name},
)