Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用django自动创建uuid列_Python_Mysql_Django - Fatal编程技术网

Python 如何使用django自动创建uuid列

Python 如何使用django自动创建uuid列,python,mysql,django,Python,Mysql,Django,我正在使用django为mysql创建数据库表,我希望它可以创建一个类型为uuid的列,我希望它可以自己生成uuid,这意味着每次插入记录时,我不需要为模型对象指定uuid。我如何才能创建它,谢谢 如果您使用的是Django>=1.8,您可以: 传递default=uuid.uuid4会自动使用随机uuid填充新记录(但请注意,这将在Python代码中完成,而不是在数据库级别) 如果您使用的是较旧版本的Django,您可以升级,或者。谢谢您的回答,但是请注意,这将在Python代码中完成,而不

我正在使用django为mysql创建数据库表,我希望它可以创建一个类型为uuid的列,我希望它可以自己生成uuid,这意味着每次插入记录时,我不需要为模型对象指定uuid。我如何才能创建它,谢谢

如果您使用的是Django>=1.8,您可以:

传递
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)