【问题标题】:Django migration adding a UUIDField with a default [duplicate]Django迁移添加具有默认值的UUIDField [重复]
【发布时间】:2019-01-28 21:02:17
【问题描述】:

我有一个简单的 Django 迁移,我在 Invoice 模型中添加了一个 UUIDField,如下所示。

模型字段

uuid = models.UUIDField(
    _('Unique invoice ID'),
    default=uuid.uuid4,
    editable=False,
)

生成的迁移

migrations.AddField(
    model_name='invoice',
    name='uuid',
    field=models.UUIDField(default=uuid.uuid4, editable=False, 
    verbose_name='Unique invoice ID'),
),

当我运行此迁移时,每张发票都会获得与其他发票相同的 UUID 值,几乎就像调用了一次 uuid.uuid4 函数然后该值被所有对象重用一样。

我使用 PostgreSQL 和 Django 1.11。

我在这里做错了什么?

【问题讨论】:

标签: django postgresql django-migrations


【解决方案1】:

Docs on writing migrations that add unique fields.

它确实被调用一次,所以你必须将操作分解为步骤。

【讨论】:

    猜你喜欢
    • 2016-09-08
    • 2015-08-12
    • 2019-12-31
    • 2014-11-19
    • 2012-04-17
    • 2011-10-29
    • 1970-01-01
    • 2017-05-21
    • 1970-01-01
    相关资源
    最近更新 更多