Django UUIDField modelfield 导致 Django admin 出错:十六进制 UUID 字符串格式错误
Django UUIDField modelfield causes error in Django admin: badly formed hexadecimal UUID string
我有一个 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
) 创建一个没有问题的实例。但是,一旦我这样做了,即使在查看对象实例列表时,我也会在管理站点上收到与以前相同的错误。
有什么想法吗?
问题是我在数据库中有一个现有记录,默认整数自动增量 id
,在我指定我的模型上的 id
字段是 UUIDField
之前.该字段的值只是 1
,这不是有效的 UUID 十六进制字符串。
删除这条记录解决了我的问题。
我有一个 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
) 创建一个没有问题的实例。但是,一旦我这样做了,即使在查看对象实例列表时,我也会在管理站点上收到与以前相同的错误。
有什么想法吗?
问题是我在数据库中有一个现有记录,默认整数自动增量 id
,在我指定我的模型上的 id
字段是 UUIDField
之前.该字段的值只是 1
,这不是有效的 UUID 十六进制字符串。
删除这条记录解决了我的问题。