我正在尝试迁移这个模型:
class Questionpart_image(models.Model):
questionpart = models.ForeignKey(Questionpart, null=True, blank=True)
image = models.ImageField()对此:
class Questionpart_image(Questionpart): # notice this base class
image = models.ImageField()利用遗产。Django产生了以下迁移:
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
发布于 2015-08-09 21:12:55
简单地说,不要依赖自动迁移,自己做或者修改这个迁移。
最简单的解决方案是将迁移中的AddField移到列表的顶部,并在其与RemoveField的RunPython块之间注入,后者将从旧字段重写id到new (如果需要,则向相反的方向进行)。
https://stackoverflow.com/questions/31908060
复制相似问题