dav*_*ode 9 django django-south
我有一个CharField字段的模型,默认值为uuid4:
f = models.CharField(default=uuid4, max_length=36, unique=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
这导致以下错误:
无法为模型'm'成功创建字段'f':未定义名称'UUID'.
运行迁移命令!何我能解决这个问题吗?到目前为止我试过:
......但问题仍然存在:(
PS.我知道我可以向南方指示自定义字段,但我认为我不使用自定义字段:P
dav*_*ode 12
我解决了在模型模块中定义以下辅助函数的问题:
from uuid import uuid4
def generateUUID():
return str(uuid4())
Run Code Online (Sandbox Code Playgroud)
然后:
f = models.CharField(default=generateUUID, max_length=36, unique=True, editable=False)
Run Code Online (Sandbox Code Playgroud)
south将生成一个迁移文件(migrations.0001_initial),其生成的UUID如下:
default='5c88ff72-def3-4842-8d48-a75bb3240bb5'
Run Code Online (Sandbox Code Playgroud)
这是非常不开心的...因为那个字符串是"静态的",相反它必须使用辅助函数动态创建...无论如何在django的世界中似乎按预期工作...我在数据库中添加了一些记录和为每个人生成了新的UUID.然后,我通过向模型添加几个字段来尝试我的第一个模式迁移,并且它们已按预期添加到数据库表中.
| 归档时间: |
|
| 查看次数: |
5793 次 |
| 最近记录: |