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 在查询集字段上设置初始值