我有以下模型:
class MyModel(models.Model):
RED = 'red'
BLUE = 'blue'
EMPTY_COLOR = None
COLORS = (
(EMPTY_COLOR, '---'),
(RED, 'red'),
(BLUE, 'blue'),
)
color = models.CharField(max_length=255, null=True, blank=True,
choices=COLORS, default=EMPTY_COLOR)
如果颜色设置为full_clean()
(当然是蓝色/红色),我希望模型验证有效(在实例上使用None
),但如果将颜色设置为空字符串。但是,很高兴地允许在模型上定义空字符串,并将空字符串保存在数据库中,即使在我看来,这些选择仅定义为NULL,“ red”或“ blue”。
我的假设不正确吗?在颜色为None
的情况下,如何在使模型验证有效的同时不允许空字符串成为有效值?
答案 0 :(得分:0)
尝试在颜色字段上删除blank = True
color = models.CharField(max_length=255, null=True,
choices=COLORS, default=EMPTY_COLOR)
或将其设置为blank = False