Django UUIDFIeld unique=True、blank=True和null=True是否正常工作?

Django UUIDFIeld unique=True、blank=True和null=True是否正常工作?,django,django-models,Django,Django Models,我正在向数据库添加一个字段: identifier=models.UUIDField(unique=True,null=True,blank=True) 但我很好奇,当有人在admin中保存一个没有值的实例时,这是否会表现为CharField或number字段。它将尝试将值保存为空字符串“”,还是将其智能化并将其保存为null?我正在使用Postgres作为数据库。我见过其他的,但没有什么能和乌伊菲尔德说话 我的最终目标是创建一个保证唯一的字段,并默认为null。将其写为: identifier

我正在向数据库添加一个字段:

identifier=models.UUIDField(unique=True,null=True,blank=True)

但我很好奇,当有人在admin中保存一个没有值的实例时,这是否会表现为CharField或number字段。它将尝试将值保存为空字符串
“”
,还是将其智能化并将其保存为
null
?我正在使用Postgres作为数据库。我见过其他的,但没有什么能和乌伊菲尔德说话

我的最终目标是创建一个保证唯一的字段,并默认为
null
。将其写为:

identifier=models.UUIDField(unique=True,null=True,default=None)
或者如果没有提供值,管理员表单验证会抱怨吗?

没有指定
UUIDField
如何处理空值

但是,查看一下就会发现,它不是
CharField
的子集,并且它明确支持处理空值

因此,该字段似乎确实会将
None
值存储为
NULL
,并且由于此类值在PostgreSQL上始终是唯一的,因此您的方法应该适用于该数据库。

没有指定
UUIDField
如何处理NULL值

但是,查看一下就会发现,它不是
CharField
的子集,并且它明确支持处理空值


因此,该字段似乎确实会将
None
值存储为
NULL
,并且由于此类值在PostgreSQL上始终是唯一的,因此您的方法应该在该数据库上工作。

为什么将其设置为
NULL=True
?为什么允许NULL?因为这是一个现有数据库,此字段的值将随时间填充。几乎所有实例都没有此字段的值。为什么将其设置为
null=True
?就像为什么允许null一样?因为这是一个现有数据库,此字段的值将随时间填充。几乎所有实例都没有此字段的值。