我正在进行迁移,将引荐代码添加到我的自定义用户模型中。我添加的字段如下所示:
refer_code = models.CharField(max_length=10, default=UUID_10)
在我的数据迁移中,我添加了以下内容:
for u in orm['app.User'].objects.all():
u.refer_code = UUID_10()
print u.name + ': ' + u.refer_code
u.save()
但是,当我执行迁移时,我的所有用户都拥有相同的代码。每个用户的不同代码都是从print
命令吐出来的,所以这对我的功能来说不是问题。
奇怪的是,如果我回滚数据迁移(它没有backwards
方法)以及之前添加字段的迁移,并重新应用它们,不仅每个模型都有相同的数据,它与以前完全相同。
数据迁移的其他部分(使用get_or_create
向数据库添加对象)可以正常工作。
到底是怎么回事?
答案 0 :(得分:0)
我认为你的函数被调用而不是创建了新的字段。所以尝试进行两次迁移。首先添加具有默认值的新字段。第二次填补该领域。