在schemamigration中是不是可以像South一樣做下面的事情?Django South - 同時進行模式和數據遷移
def forwards(self, orm):
## CREATION
# Adding model 'Added'
db.create_table(u'something_added', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('foo', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['something.Foo'])),
('bar', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['something.Bar'])),
))
db.send_create_signal(u'something', ['Added'])
## DATA
# Create Added for every Foo
for f in orm.Foo.objects.all():
self.prev_orm.Added.objects.create(foo=f, bar=f.bar)
## DELETION
# Deleting field 'Foo.bar'
db.delete_column(u'something_foo', 'bar_id')
見prev_orm
,讓我來訪問f.bar
,做於一身。我發現不得不寫3遷移是因爲這很重...
我知道這不是「做的方式」,但在我看來,這將是老實說,更乾淨。
會有一個真正的問題,這樣做順便說一句嗎?
我會嘗試在模型字典中包含「添加」模型。然後像''create_table'一樣可以像往常一樣簡單地使用'self.orm.Added',但我沒有測試它。 – esauro