You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 06:04:53