⛲
DjangoでJSONかYAMLを使い初期データを生成させてみる
所属マスタテーブルを作成し、そこに初期データを生成させていきます。
初期データを生成させるまで
前提として、モデル・マイグレーションファイル作成済み・マイグレート実行済みとします。
テーブル構成
id | name |
---|---|
1 | 総務 |
... | ... |
JSONを作成する
migrattions
ディレクトリと同じ階層にfixtures
ディレクトリを生成し、その配下にJSONファイルを作成する。
また、作成するJSONは定義しているモデルがあるAppディレクトリ配下に生成すると、わかりやすくて良い。
api/api/fixtures/organization_initial.json
[
{
"model": "api.organization",
"pk": 1,
"fields": {
"name": "総務"
}
},
{
"model": "api.organization",
"pk": 2,
"fields": {
"name": "営業"
}
},
{
"model": "api.organization",
"pk": 3,
"fields": {
"name": "経理"
}
}
]
-
model
:データを生成させたいモデルの名称(App名付き) -
pk
:プライマリーキー(今回の場合はid
) -
fields
:オブジェクトの中には、キーにカラム名を指定し、値には生成させたい値を記述する
コマンド実行
/プロジェクト
の階層で以下のコマンドを実行。
python3 manage.py loaddata organization_initial.json
コマンドが成功したら、JSONに記述したようにデータが生成されています。
Django3.2
で確認済み。
YAMLバージョン
個人的にはYAML形式の方が好きかも。
api/api/fixtures/organization_initial.yaml
- model: api.organization
pk: 1
fields:
name: 総務
- model: api.organization
pk: 2
fields:
name: 営業
- model: api.organization
pk: 3
fields:
name: 経理
Discussion