获取:uuid的输入语法无效:""当使用django-uuidfield作为模型的主键时

the*_*aju 5 python django uuid

我有以下使用django-uuidfield作为主键的模型类:

class FODType(models.Model):
    id = UUIDField(auto=True, primary_key=True)
    name = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)

从管理员,我尝试为此模型创建一个条目,但我收到以下错误:

/ admin// Bleary/fodtype/add /无效输入语法为uuid:""LINE 1:... WHERE"Bleary_fodtype"."id"=''

UUIDField如果没有指定值,则将模型设置为自动创建一个值,但在这种情况下,将指定空字符串作为保存主键的值.由于主键具有值,因此它尝试进行更新而不是插入并失败.

我在这做错了什么?

sax*_*sax 0

请注意,django-UUDField 实现不反映用作主键时的预期行为,如果 save() 由于任何原因失败,字段的值将持续存在,因此无法再使用检查 obj.pk 来检查对象是否存在是否已存储。