Djangoモデル作成手順|models.pyの書き方と基本パターンを初心者向けに解説
生徒
「Django(ジャンゴ)でデータを保存する仕組みって、どうやって作るんですか?」
先生
「Djangoでは、モデル(Model:モデル)という仕組みを使って、データベースの設計をします。これは設計図のようなものです。」
生徒
「設計図ってことは、難しそうですね……」
先生
「大丈夫です。models.py(モデルズ・パイ)に決まった書き方で書くだけなので、順番に見ていきましょう。」
1. Djangoモデルとは何かを超かんたんに理解しよう
Django(ジャンゴ)のモデルとは、データベースに保存する情報の形を決めるものです。たとえば「名前」「年齢」「メールアドレス」などを、どのように保存するかを定義します。
現実世界でたとえると、モデルは「申込用紙」のような存在です。どんな項目を書くのかを先に決めておかないと、正しく情報を集められません。
Djangoでは、このモデルを使ってデータベース操作を自動化します。この仕組みをORM(オーアールエム:Object Relational Mapping)と呼びます。難しく聞こえますが、「Pythonコードでデータベースを操作できる仕組み」と考えて大丈夫です。
2. models.pyとは?ファイルの役割を理解しよう
models.py(モデルズ・パイ)は、Djangoアプリの中に最初から用意されているファイルです。このファイルにモデルを書きます。
models.pyは「このアプリでは、どんなデータを扱いますか?」をDjangoに伝える場所です。ここに書いた内容を元に、Djangoが自動でデータベース用の命令を作ってくれます。
つまり、models.pyはデータベースとDjangoをつなぐ、とても重要なファイルなのです。
3. モデル作成の基本パターンを見てみよう
Djangoモデルは、Pythonのclass(クラス)を使って作成します。クラスとは「設計図」のことです。
まずは、最も基本的なモデルの例を見てみましょう。
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
この例では、User(ユーザー)というモデルを作っています。nameは文字、ageは数字として保存されます。
CharField(キャラクター・フィールド)は文字列、IntegerField(インテジャー・フィールド)は整数を表します。
4. フィールドとは?データの中身を決める部品
モデルの中に書くnameやageのようなものを、フィールドと呼びます。フィールドは「1つのデータ項目」です。
たとえば、住所録であれば「名前」「電話番号」「住所」がフィールドになります。
class Book(models.Model):
title = models.CharField(max_length=200)
price = models.IntegerField()
published = models.BooleanField()
BooleanField(ブーリアン・フィールド)は、はい・いいえ(True / False)を保存するためのフィールドです。
5. よく使うオプション指定を覚えよう
Djangoモデルでは、フィールドにオプションを指定できます。これは「入力ルール」を決めるものです。
class Profile(models.Model):
nickname = models.CharField(max_length=50, blank=True)
email = models.EmailField(unique=True)
blank=Trueは「空でもOK」という意味です。unique=Trueは「同じ値を登録できない」ことを表します。
EmailField(イーメール・フィールド)は、メールアドレス専用のフィールドです。
6. __str__メソッドで表示をわかりやすくする
Djangoモデルでは、__str__(ストリング)メソッドを定義するのが定番です。これは「人が見たときの表示名」を決めます。
class Category(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
これを書いておくと、管理画面などでデータの中身が分かりやすく表示されます。
7. モデル作成からデータベース反映までの流れ
Djangoでモデルを作る流れは、必ず決まっています。
- models.pyにモデルを書く
- マイグレーションファイルを作成する
- データベースに反映する
この手順を守ることで、Djangoが安全にデータベースを管理してくれます。
8. 初心者がつまずきやすいポイント
models.pyを書いたあとに、反映を忘れてしまう人が多いです。モデルを書いただけでは、まだデータベースには反映されていません。
また、フィールドの種類を間違えると、あとから修正が大変になります。最初はシンプルな設計を意識しましょう。
Djangoモデルは慣れると、とても強力で便利な仕組みです。まずは基本パターンをしっかり身につけることが大切です。