Django验证器不能在shell 命令中工作,它只能在Django表单和Django Admin上工作,但不能在shell 命令中工作.我有这个:
Validator
def validate_cuit(value):
""" Must be exactly 11 numeric characters """
if len(value) != 11:
raise CuitValidationException('CUIT should have 11 characters')
if not value.isdigit():
raise CuitValidationException('CUIT should only contain numeric characters')
return value
Exception
class CuitValidationException(ValidationError):
pass
型号
class Empresa(models.型号):
name = models.CharField(max_length=120, validators=[validate_name])
cuit = models.CharField(max_length=11, validators=[validate_cuit])
如果我这样做,我不会得到任何错误
e = Empresa.objects.create(name="Testing Case", cuit='1')
我发现解决这个问题的唯一方法是使用save方法:
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
self.name = validate_name(self.name)
self.cuit = validate_cuit(self.cuit)
return super().save(force_insert, force_update, using, update_fields)
但我肯定这不是必须的,你能帮我吗?