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一样?因为这是一个现有数据库,此字段的值将随时间填充。几乎所有实例都没有此字段的值。