我看了很多文档和互联网,但我找不到答案。我有一个模型有几个字段(空白= True,null = True)。当我保存ModelForm时,列被设置为数据库中的空字符串。我希望它在数据库中保存为NULL(如果它们是空的)。
如何告诉ModelForm将空值保存为NULL?
答案 0 :(得分:3)
此行为是设计使然。由于各种原因,Django宁愿拥有空字符串而不是NULL。谷歌会告诉你,但长话短说,Django发现NULL
和""
的意思重叠,并取消了前者。
你可以做的是拦截来自数据库驱动程序的值并将空字符串更改为NULL
,反之亦然。实现自定义CharField
子类将帮助您实现目标。
这样做,您将体验NULL
和""
之间的歧义:)。