不允许空字符串的Django CharField
有没有办法让一个字符字段(CharField)或者文本字段(TextField)不接受空字符串?我试着用 blank=False
,但是没效果...
class Foo(models.Model):
title = models.CharField(max_length=124, blank=False)
然后在执行完 syncdb
后,我运行 python manage.py shell
,可以输入:
f = Foo()
f.save()
结果没有报错。这个对象的标题值是 ''
(也就是空字符串)。我 不想 让它这样,我希望如果没有给 Foo()
一个非空字符串,它就会报错。有没有办法做到这一点?
我使用的是 Django 1.6
2 个回答
28
使用一个叫做 MinLengthValidator
的工具:
from django.core.validators import MinLengthValidator
...
title = models.CharField(max_length=10, validators=[MinLengthValidator(1)])
5
根据文档,blank=False
主要是用来验证的,它只在表单层面起作用。
相关讨论: