Python 如何使用django自动创建uuid列
我正在使用django为mysql创建数据库表,我希望它可以创建一个类型为uuid的列,我希望它可以自己生成uuid,这意味着每次插入记录时,我不需要为模型对象指定uuid。我如何才能创建它,谢谢 如果您使用的是Django>=1.8,您可以: 传递Python 如何使用django自动创建uuid列,python,mysql,django,Python,Mysql,Django,我正在使用django为mysql创建数据库表,我希望它可以创建一个类型为uuid的列,我希望它可以自己生成uuid,这意味着每次插入记录时,我不需要为模型对象指定uuid。我如何才能创建它,谢谢 如果您使用的是Django>=1.8,您可以: 传递default=uuid.uuid4会自动使用随机uuid填充新记录(但请注意,这将在Python代码中完成,而不是在数据库级别) 如果您使用的是较旧版本的Django,您可以升级,或者。谢谢您的回答,但是请注意,这将在Python代码中完成,而不
default=uuid.uuid4
会自动使用随机uuid填充新记录(但请注意,这将在Python代码中完成,而不是在数据库级别)
如果您使用的是较旧版本的Django,您可以升级,或者。谢谢您的回答,但是请注意,这将在Python代码中完成,而不是在数据库级别。这意味着@FireSun意味着UUID将由Django调用
UUID.uuid4()
生成,而不是由您的数据库生成。如果您只使用Django插入记录,这对您来说不会有问题。这样做的缺点(我发现)是,如果这是作为迁移进行的,那么数据库中的所有现有行都将获得相同的UUID值。为了避免现有行获得相同的UUID值,遵循Django文档中的“添加唯一字段的迁移”示例:
import uuid
from django.db import models
class MyUUIDModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)