13

seed_data.json初期データがあるフィクスチャがあります。

時々、このフィクスチャに新しいデータを追加してリロードすると、データが正しく更新されます。

ただし、ここから一部のデータを削除したいと考えています。たとえばseed_data.json、次のようなものがありました。

{"fields": {"name": "Field 0"},"model": "catalog.product","pk": 1},
{"fields": {"name": "Field 1"},"model": "catalog.product","pk": 2},
{"fields": {"name": "Field 2"},"model": "catalog.product","pk": 3},
# ...

それは次のようになりました:

{"fields": {"name": "Field 1"},"model": "catalog.product","pk": 1},
{"fields": {"name": "Field 2"},"model": "catalog.product","pk": 2},
# ...

しかし、私は得ています:

django.db.utils.IntegrityError: Problem installing fixture .....\seed_data.json

Could not load catalog.Product(pk=2): column name is not unique

したがって、一部のデータを追加する場合は問題ありませんが、一部を削除しようとすると、主キーと競合します。

どうすればやろうとしていることを達成できますか?

4

2 に答える 2

5

フィクスチャは、テストを実行するときなど、完全に新しいデータベース インスタンスの初期データ専用です。既存のデータを変更するには、移行を使用します。

于 2016-01-29T20:28:35.613 に答える