Django noob here
我使用
创建了一个模型customer_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
将模型迁移到MySQL后,我尝试使用
将数据添加到mysql中insert into customer_customer (customer_id, ...) values (uuid(), ...)
使用唯一代码在MySQL中正确插入数据,但是,当我尝试通过Django管理工具(此表为用户提供属性)显示时,会抛出格式错误的uuid错误。
File "/usr/lib/python2.7/uuid.py", line 134, in __init__
raise ValueError('badly formed hexadecimal UUID string')
ValueError: badly formed hexadecimal UUID string
请讨论是否有另一种直接在MySQL中创建种子数据的方法。
答案 0 :(得分:1)
用于存储通用唯一标识符的字段。使用Python的UUID 类。在PostgreSQL上使用时,它以uuid数据类型存储, 否则在char(32)。
所以使用MySQL django处理uuid,并将字段作为Char32进行管理。你不能使用原生的MySQL uuid。
如果你必须从MySQL端创建uuid ,请在django模型中使用CharField,并填充它:
afterlogintry()
然后保存:
class MyModel(models.Model):
fld = models.CharField(max_length=36)
默认:
import uuid
MyModel.fld = str(uuid.uuid4())
答案 1 :(得分:0)
尝试一下:
insert into customer_customer (customer_id, ...) values (Replace(uuid(),'-',''), ...)
然后它将起作用。