Django ModelForm没有保存NULL值

时间:2013-12-26 18:52:33

标签: python django model django-forms

我看了很多文档和互联网,但我找不到答案。我有一个模型有几个字段(空白= True,null = True)。当我保存ModelForm时,列被设置为数据库中的空字符串。我希望它在数据库中保存为NULL(如果它们是空的)。

如何告诉ModelForm将空值保存为NULL?

1 个答案:

答案 0 :(得分:3)

此行为是设计使然。由于各种原因,Django宁愿拥有空字符串而不是NULL。谷歌会告诉你,但长话短说,Django发现NULL""的意思重叠,并取消了前者。

可以做的是拦截来自数据库驱动程序的值并将空字符串更改为NULL,反之亦然。实现自定义CharField子类将帮助您实现目标。

这样做,您将体验NULL""之间的歧义:)。