ジャンゴ(django)のプロジェクトでマスターデーターを入れる方法

2019-06-05

ジャンゴ(django)のプロジェクトで必要なマスターデータやテストデーターを入れる方法(data-seed)について説明します。

概要

一般的にウェブサービスを開発する時最初、基本的設定が必要なマスターデーターやテストデーターが必要になります。このブログではジャンゴ(django)のプロジェクトでfixturesを使ってマスターデーターを生成する方法について説明します。

このブログで紹介するソースコードはGithubに公開されています。下記のリンクを参考してください。

ジャンゴ(django)のプロジェクトの準備

以前のブログシリーズでジャンゴ(django)のプロジェクトを使う方法について説明しました。ジャンゴ(django)を使ってプロジェクトを構成する方法について詳しく内容は下記のリンクを確認してください。

このブログではジャンゴ(django)のインストールやプロジェクトの設定などについては説明しません。簡単にプロジェクトが進めるレベルで説明します。

下記のコマンドでジャンゴ(django)のプロジェクトを生成します。

django-admin startproject django_jwt

下記のブログを参考してデーターベースやテーブルを生成します。

データーベースの連動が完了されたら下記のコマンドを使って管理者(superuser)を生成します。

python manage.py createsuperuser

下記のブログを参考してBlogで言うジャンゴ(djagno)のアプリ(App)とPostモデル(Model)を生成します。

マスターデーター準備

上のジャンゴ(django)のプロジェクトの準備を勧めたらblog/models.pyが下記のように見えます。

from django.db import models
from django.utils import timezone


class Post(models.Model):
    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    published_at = models.DateTimeField(blank=True, null=True)

    def publish(self):
        self.published_at = timezone.now()
        self.save()

    def __str__(self):
        return self.title

私たちはこのモデル(Models)に合うマスターデーター(Master data)を準備してデーターを追加(Seed)する予定です。blog/fixtures/posts-data.jsonのファイルを作って下記のように修正します。

[
  {
    "model": "blog.post",
    "fields": {
      "author": 1,
      "title": "test2",
      "content": "test2",
      "created_at": "2019-06-04T15:43:29.899",
      "updated_at": "2019-06-04T15:43:29.899",
      "published_at": "2019-06-04T15:43:28"
    }
  },
  {
    "model": "blog.post",
    "fields": {
      "author": 1,
      "title": "test1",
      "content": "test1\r\n\r\ntest1",
      "created_at": "2019-06-04T15:43:19.760",
      "updated_at": "2019-06-04T15:43:19.760",
      "published_at": "2019-06-04T15:43:18"
    }
  }
]

このJSONファイルを見たら分かると思いますが、私たちは2つのテストデーターを入れる予定です。

マスターデーターを入れる(Data Seed)

下記のコマンドで私たちが作ったデーターシード(Data Seed)をデーターベースに入れます。

python manage.py loaddata blog/fixtures/posts-data.json

確認

データーベースツールを使ってデーターがうまく入ったか確認してみます。

ジャンゴ(django)のマスターデーター追加(django data seed) - データーベースツールを使ってデーター確認

もちろん、ジャンゴ(django)の管理画面でも確認ができます。下記のコマンドでジャンゴ(django)のテストサーバーを起動します。

python manage.py runserver

そして管理画面のURL(http://127.0.0.1:8000/admin)に接続したら追加されたデーターが確認できます。

ジャンゴ(django)のマスターデーター追加(django data seed) - ジャンゴ(django)の管理画面を使ってデーター確認

完了

これでジャンゴ(django)のマスターデーターを追加する方法(Data seed)について見てみました。これからはジャンゴ(django)でプロジェクトを進める時、マスターデーターやテストデーターを準備することができるようになりました!

Buy me a coffeeBuy me a coffee
Posts