我有一个Django模型,在空值和空值之间含义不同。当我使用以下CHOICES
创建选择字段时:
CHOICES = [
(None, 'Null'),
('', 'Blank'),
('foo', 'Foo'),
('bar', 'Bar')
]
管理员表单会生成以下内容:
<select name='my_field'>
<option value>Null</option>
<option value>Blank</option>
<option value='foo'>Foo</option>
<option value='bar'>Bar</option>
</select>
因此,当您提交选择了“空白”的表单时,数据库将保存null
值。有没有办法让Django在管理表单中区分空白与null?
编辑:
更多信息,这是我正在使用的现有代码,简化了一些:
class CustomChoiceField(models.CharField):
FIELD_SETTINGS = {
'null': True,
'blank': True,
'max_length': 5,
'choices': [
(None, 'Null'),
('', 'Blank'),
('foo', 'Foo'),
('bar', 'Bar')
]
}
class MyModel(BaseModel):
my_field = CustomChoiceField('label')