2012-05-10 164 views
2

每當我使用Django South創建datamigration(但不要運行它),然後創建一個schemamigration向遷移中涉及的模型添加一個新字段,manage.py migrate任務在datamigration上失敗。Django South:在數據遷移後添加模型字段

原因是models.py文件的類定義包含datamigration無法識別的新字段定義。

有什麼辦法可以防止這種情況發生?

+0

有一種方法,使遷移表中識別新的領域.. –

+0

難道是新的領域(S)手動添加到在datamigration文件中模擬字典? –

+0

否。在初始遷移後,我有一系列用於遷移的命令,因此可以識別表中的更改。 –

回答

6

在南方數據遷移中,您應該直接更新對模型的引用。即

from myapp.models import MyModel # <- This is bad in datamigration 
MyModel.objects.filter(...) 

必須使用ORM obbject

orm.MyModel.objects.filter(...) <- This is good. 
+1

這是正確的答案,謝謝!完美工作。 –

+0

謝謝 - 非常有用! – khoomeister

+0

明智的答案。謝謝! –