【问题标题】:Django CharField without empty strings没有空字符串的 Django CharField
【发布时间】:2014-05-04 06:01:14
【问题描述】:

有没有办法制作一个不接受空字符串的 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

【问题讨论】:

    标签: python django


    【解决方案1】:

    使用MinLengthValidator

    from django.core.validators import MinLengthValidator
    ...
    title = models.CharField(max_length=10, validators=[MinLengthValidator(1)])
    

    【讨论】:

      【解决方案2】:

      根据documentationblank=False 纯粹与验证相关,仅适用于表单级别。

      查看相关主题:

      【讨论】:

      • @gyeh 不客气。如果在模型字段级别检查非空值很重要,请考虑制作验证器,请参阅stackoverflow.com/a/6195014/771848
      • @alcxe 是的,通常我会这样做,但我正在尝试创建一个 django-admin 命令来填充数据库,并且我想确保它不接受来自模型端。但我可以检查命令本身中的空字符串。
      猜你喜欢
      • 2015-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多