如何禁用Django模型中ShortUUIDField的自动ID生成功能?
解决Django ShortUUIDField自动生成ID的问题
要让sample_id字段默认值为空,仅设置default=lambda: None是不够的,因为ShortUUIDField默认开启了自动生成功能。你需要显式关闭该字段的自动生成参数:
修改模型字段定义,添加auto_generate=False参数:
class Mymodel(models.Model): pid = ShortUUIDField(length=10, max_length=100, prefix="prd", alphabet="abcdef") sample_id = ShortUUIDField( length=10, max_length=100, prefix="var", alphabet="abcdef", null=True, blank=True, auto_generate=False # 关键:关闭自动生成机制 )
原因说明
ShortUUIDField(通常来自django-shortuuidfield包)默认参数auto_generate=True,这会强制字段在实例创建时自动生成UUID值,优先级高于你设置的default配置。只有将auto_generate设为False,才能让字段遵循null=True和blank=True的规则,默认保持为空状态。
内容的提问来源于stack exchange,提问作者Google User
相关产品推荐
相关产品推荐

