Django UUIDField modelfield在Django admin中导致错误:十六进制UUID字符串格式错误

2024-04-25 12:25:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Django 1.8项目,在我的一个模型上,我正在使用新的UUIDField,就像这样:

class MyModel(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

我还设置了admin.py:

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    pass

当我加载管理页以尝试创建实例时,出现错误:

ValueError at /admin/core/mymodel/add/
badly formed hexadecimal UUID string

我可以从Django shell(./manage.py shell)创建一个实例。一旦我这样做了,我得到同样的错误,在管理网站上,甚至当查看对象实例列表。

有什么想法吗?


Tags: 项目django实例py模型idmodeladmin
1条回答
网友
1楼 · 发布于 2024-04-25 12:25:39

问题是,在我指定模型上的id字段是UUIDField之前,我在数据库中有一个具有默认整数自动递增id的现有记录。此字段的值只是1,这不是有效的UUID十六进制字符串。

删除此记录解决了我的问题。

相关问题 更多 >