我有一个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)创建实例没有问题。一旦完成,即使在查看对象实例列表时,在管理站点上也会遇到与以前相同的错误。
./manage.py shell
有什么想法吗?
问题是我在数据库中已有一个默认整数自动递增的现有记录id,然后才确定id模型上的字段是UUIDField。该字段的值是just 1,这不是有效的UUID十六进制字符串。
id
UUIDField
1
删除此记录解决了我的问题。