首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带外键的Django迁移

带外键的Django迁移
EN

Stack Overflow用户
提问于 2015-08-09 19:31:52
回答 1查看 1.6K关注 0票数 0

我正在尝试迁移这个模型:

代码语言:javascript
复制
class Questionpart_image(models.Model):
    questionpart = models.ForeignKey(Questionpart, null=True, blank=True)
    image = models.ImageField()

对此:

代码语言:javascript
复制
class Questionpart_image(Questionpart): # notice this base class
    image = models.ImageField()

利用遗产。Django产生了以下迁移:

代码语言:javascript
复制
class Migration(migrations.Migration):

dependencies = [
    ('ochsite', '0016_auto_20150809_1903'),
]

operations = [
    migrations.RemoveField(
        model_name='questionpart_image',
        name='id',
    ),
    migrations.RemoveField(
        model_name='questionpart_image',
        name='questionpart',
    ),
    migrations.AddField(
        model_name='questionpart_image',
        name='questionpart_ptr',
        field=models.OneToOneField(default='', primary_key=True, to='ochsite.Questionpart', serialize=False, parent_link=True, auto_created=True),
        preserve_default=False,
    ),
]

但这并不能从questionpart_ptr字段将正确的外键设置为questionpart。我怎样才能做到这一点?

我已经找了很久了,但是nothing...thanks

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-09 21:12:55

简单地说,不要依赖自动迁移,自己做或者修改这个迁移。

最简单的解决方案是将迁移中的AddField移到列表的顶部,并在其与RemoveFieldRunPython块之间注入,后者将从旧字段重写id到new (如果需要,则向相反的方向进行)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31908060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档