【问题标题】:Django ModelForm not saving NULL valuesDjango ModelForm 不保存 NULL 值
【发布时间】:2014-01-14 09:30:12
【问题描述】:

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

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

【问题讨论】:

    标签: python django model django-forms


    【解决方案1】:

    此行为是设计使然。出于各种原因,Django 宁愿使用空字符串而不是 NULL。谷歌会告诉你,但长话短说,Django 发现 NULL 和 "" 在含义上重叠,并取消了前者。

    您可以做的就是截取来自数据库驱动程序的值并将空字符串更改为NULL,反之亦然。实现一个自定义的CharField 子类会让你到达那里。

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

    【讨论】:

    • 我明白了,这是有道理的。非常感谢!
    猜你喜欢
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 2017-06-29
    • 2012-07-23
    相关资源
    最近更新 更多