使用Django正向插入NULL(非空!)

使用Django正向插入NULL(非空!),django,null,Django,Null,Null不是空字符串 从xyz为空的表中选择计数(*)与从xyz=''的表中选择计数(*)不同 如果列上有唯一约束,则可以存在多个空值。不能使用多个空字符串 我知道有什么区别。我不需要解释。我只想知道如何在Django admin中插入一个NULL值 我试过: default=None null=True 不,我不想要空白。我想要NULL 当我从迁移中查看模式时,我清楚地看到列allowNULL 那么,在动态类型的python中,什么样的语法会被那些不了解约束是什么的人的搜索引擎优化所困扰呢

Null
不是空字符串

从xyz为空的表中选择计数(*)与从xyz=''的表中选择计数(*)不同

如果列上有唯一约束,则可以存在多个空值。不能使用多个空字符串

我知道有什么区别。我不需要解释。我只想知道如何在Django admin中插入一个
NULL

我试过:

default=None
null=True
不,我不想要
空白
。我想要
NULL

当我从迁移中查看模式时,我清楚地看到列allow
NULL

那么,在动态类型的python中,什么样的语法会被那些不了解约束是什么的人的搜索引擎优化所困扰呢

此字段为必填字段


不,不是。我可以从表结构中清楚地看到这一点。

当Django向MySQL发送一个空字段的更新时,不会将其作为空字段插入(当您在管理中时)

e、 g。 您有一个openid_键字段,它是用户openid url的url。此url必须是唯一的,并应标记为具有db完整性

你进入管理员并编辑一个用户,他们没有openid\u密钥。您保存了用户,一切都很好

你进入管理员并编辑一个不同的用户,他们没有openid_密钥,你保存用户。SQL抛出了一个关于键需要是唯一的匹配


Django尝试为该字段插入“”而不是NULL。

您还必须提供
blank=True
,因此Django管理员将允许您设置空字符串

例如,我在这个模型上测试了它:

class NullFieldModel(models.Model):
title=models.CharField(max_length=100,null=True,default=None,blank=True)
它与sqlite一起工作。以下查询使用新模型答复我:

SELECT * FROM testapp_nullfieldmodel WHERE testapp_nullfieldmodel.title IS NULL