Django UUIDField modelfield导致Django管理员出错:格式错误的十六进制UUID字符串

Jos*_*eph 4 python django uuid django-models

我有一个Django 1.8项目,在我的一个模型上,我正在使用新的UUIDField,如下所示:

class MyModel(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
Run Code Online (Sandbox Code Playgroud)

我还设置了我的admin.py:

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    pass
Run Code Online (Sandbox Code Playgroud)

当我加载管理页面以尝试创建实例时,我收到一个错误:

ValueError at /admin/core/mymodel/add/
badly formed hexadecimal UUID string
Run Code Online (Sandbox Code Playgroud)

我能够从Django shell(./manage.py shell)创建一个没有问题的实例.一旦我这样做了,即使在查看对象实例列表时,我也会在管理站点上得到与之前相同的错误.

有什么想法吗?

Jos*_*eph 8

问题是我在数据库中有一个现有记录,默认的整数自动增量id,在具体说明id我的模型上的字段是a之前UUIDField.该字段的值只是1,它不是有效的UUID十六进制字符串.

删除此记录修复了我的问题.