Choicefield空字符串和null

时间:2018-07-20 14:20:31

标签: python html django

我有一个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')

0 个答案:

没有答案