2013-06-12 37 views

回答

4

是的,你可以用loaddata

./manage.py loaddata path/to/fixture/some_new_data.json 

但是:

  • 不打电话给你的新数据initial_data.json否则将被重新加载每次执行syncdb时或运行南migraton和意志消除夹具加载后所做的任何更改。 (正如在通过这个page的中途提到的)
  • 与上述相关,通过灯具加载数据可能是一种脆弱的方式来做事情,除非您确定在编写灯具时新数据不会到达。如果确实如此,您可能会在数据库中发生冲突和失败或“不正确”的数据。

根据数据的性质,最好使用data migration in South。当您为大量记录设置几个值时(例如,更改字段的缺省值或使用数据填充空字段),数据迁移可能会很好。数据迁移还允许您通过Python应用某些检查/逻辑,以便您可以定位更新的记录,或以不同的方式更新不同的记录,而不是写大量的灯具。但是,如果你想加载大量新记录,夹具会更有意义。

+0

我试了一下啊,我应该已经更清楚了。我会更新这个问题。问题是我如何更新现有的行? – eugene

+1

啊,这个更新填满了我的原始答案:o)尽管数据迁移可能仍然会更好。你需要做什么样的改变? –

+0

对不起模糊的问题。 :(我有模型A和data_for_A.json,现在我向A添加了一个字段,并希望为字段赋予初始值(每行有不同的初始值) – eugene