zukucode
主にWEB関連の情報を技術メモとして発信しています。

Django データベースに初期データを登録する

Djangoでデータベースに初期データを登録する方法を紹介します。

appという名前でアプリケーションを作成し、Django マイグレーションの基本的な使い方で紹介した方法で、model.pyに定義したテーブルの定義情報をデータベースに登録してある状態とします。

データファイルの作成

appフォルダにfixturesという名前でフォルダを作成します。

fixturesフォルダの中に、初期データを登録するjsonファイルを作成します。

今回はinit.jsonという名前で作成します。

  • app
    • fixtures
      • init.json

init.jsonは以下のように記載します。

modelにはテーブル名、pkにはプライマリキー(通常は1〜連番)、fieldsにはカラム名と登録するデータをそれぞれ記載します。

init.json
[
  {
    "model": "app.setting",
    "pk": 1,
    "fields": {
      "column1": "5",
      "column2": "test"
    }
  },
  {
    "model": "app.category",
    "pk": 1,
    "fields": {
      "category_name": "カテゴリー1"
    }
  },
  {
    "model": "app.category",
    "pk": 2,
    "fields": {
      "category_name": "カテゴリー2"
    }
  }
]

データの登録

以下のコマンドで、init.jsonに定義したデータをデータベースに登録します。

$ python manage.py loaddata init.json

関連記事