【发布时间】:2020-05-31 16:31:45
【问题描述】:
我使用初始 IntegerField 主键创建了一个表,后来将 id 更改为 UUIDField。现在这会引发一个“格式错误的十六进制 UUID 字符串”,我猜是因为像“1”这样的数字不是有效的 UUID 值。在更新 django 应用程序的 models.py 文件时,有谁知道在代码中解决此问题的简洁方法?
【问题讨论】:
标签: python django python-3.x uuid django-3.0
我使用初始 IntegerField 主键创建了一个表,后来将 id 更改为 UUIDField。现在这会引发一个“格式错误的十六进制 UUID 字符串”,我猜是因为像“1”这样的数字不是有效的 UUID 值。在更新 django 应用程序的 models.py 文件时,有谁知道在代码中解决此问题的简洁方法?
【问题讨论】:
标签: python django python-3.x uuid django-3.0
在此之前,请仔细检查您在 Cascade 上没有任何外键。然后,而不是更改 id = models.IntegerField() 的类型:
uuid = models.UUIDField(default=uuid.uuid4, primary=True)(默认为现有行设置该字段)id 字段uuid 字段重命名为id
但是,您应该知道删除 id 字段和/或命名 uuid 不是强制性的,保留两者通常是个好主意。
【讨论】: