django modelform 为空显示空白

Posted

技术标签:

【中文标题】django modelform 为空显示空白【英文标题】:django modelform display blank for null 【发布时间】:2015-04-14 04:50:16 【问题描述】:

在django模型表单中,如何为空值显示空白,即防止在表单上显示(无)。使用postgresql,django 1.6.5。我不希望在模型实例中为允许的空值添加空间。

【问题讨论】:

【参考方案1】:

相反,我最终使用了 forms.HiddenInput() 并且没有显示带有 null 的字段,这非常适合我的情况!

【讨论】:

【参考方案2】:

默认情况下,每个 Field 类都假定该值是必需的,因此如果您传递一个空值——None 或空字符串("")——那么clean() 将引发ValidationError 异常:

>>> from django import forms
>>> f = forms.CharField()
>>> f.clean('foo')
u'foo'
>>> f.clean('')
Traceback (most recent call last):
...
ValidationError: [u'This field is required.']
>>> f.clean(None)
Traceback (most recent call last):
...
ValidationError: [u'This field is required.']

如果一个字段有required=False 并且您将clean() 传递给一个空值,那么clean() 将返回一个规范化的空值而不是提高ValidationError。对于CharField,这将是一个 Unicode 空字符串。对于其他 Field 类,它可能是 None。 (这因领域而异。)

像这样:

>>> f = forms.CharField(required=False)
>>> f.clean('foo')
u'foo'
>>> f.clean('')
u''
>>> f.clean(None)
u''

【讨论】:

以上是关于django modelform 为空显示空白的主要内容,如果未能解决你的问题,请参考以下文章

Django - UpdateView ModelForm 在查询集字段上设置初始值

FormData() 对象在 Django 后端始终为空

Django form&ModelForm

检查 DateTime 类型的值是不是在视图中为空,如果为空则显示空白

为啥 django 模型的空白和空值不同的选项?

为啥 django 模型的空白和空值不同的选项?