【发布时间】:2016-03-19 18:40:02
【问题描述】:
我正在使用django为mysql创建数据库表,我希望它可以创建一个类型为uuid的列,我希望它可以自己生成uuid,也就是说每次插入一条记录,我不需要为模型对象指定一个 uuid。我该怎么做,谢谢!
【问题讨论】:
我正在使用django为mysql创建数据库表,我希望它可以创建一个类型为uuid的列,我希望它可以自己生成uuid,也就是说每次插入一条记录,我不需要为模型对象指定一个 uuid。我该怎么做,谢谢!
【问题讨论】:
如果你使用 Django >= 1.8,你可以use a UUIDField:
import uuid
from django.db import models
class MyUUIDModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
传递default = uuid.uuid4 会使用随机 UUID 自动填充新记录(但请注意,这将在 Python 代码中完成,而不是在数据库级别)。
如果你使用的是旧版本的 Django,你可以升级,或者use django-extensions, which provides a UUIDField as well。
【讨论】:
uuid.uuid4() 生成,而不是由您的数据库生成。如果你只是使用 Django 插入记录,这对你来说不是问题。