我有一个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
)中轻松创建实例。但是,一旦我这样做了,在管理网站上查看对象实例列表时仍会出现与之前相同的错误。
有任何想法吗?
default
参数的值应该是一个可调用对象。在这种情况下,uuid.uuid4
是正确的选择。@GlynJackson - 我不确定为什么模型/ URL 的其余部分很重要。我会查看我的数据库以确保大小正确。考虑到我可以通过 shell 创建/访问实例而没有问题,我不认为那是问题所在。问题出在管理员界面。 - Joseph