小编典典

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

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)创建实例没有问题。一旦完成,即使在查看对象实例列表时,在管理站点上也会遇到与以前相同的错误。

有什么想法吗?


阅读 210

收藏
2021-01-20

共1个答案

小编典典

问题是我在数据库中已有一个默认整数自动递增的现有记录id,然后才确定id模型上的字段是UUIDField。该字段的值是just
1,这不是有效的UUID十六进制字符串。

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

2021-01-20