我正在尝试对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},
)
更改为
此外,您还可以使用RegexValidator保存一些代码行
相关问题 更多 >
编程相关推荐