カテゴリ: Django 更新日: 2026/01/28

Django(ジャンゴ)のモデル基本|Djangoモデルのフィールド型まとめを初心者向けに完全解説

Djangoモデルのフィールド型まとめ|全種類をわかりやすく解説
Djangoモデルのフィールド型まとめ|全種類をわかりやすく解説

先生と生徒の会話形式で理解しよう

生徒

「Django(ジャンゴ)のモデルって聞いたんですけど、フィールド型って何ですか?」

先生

「モデルは、データベースに保存する設計図のようなものです。フィールド型は、名前や年齢など、保存するデータの種類を決める部品ですね。」

生徒

「パソコンをほとんど触ったことがなくても理解できますか?」

先生

「大丈夫です。ノートに名前や電話番号を書く感覚で考えると、とても分かりやすいですよ。」

1. Django(ジャンゴ)のモデルとフィールド型とは?

1. Django(ジャンゴ)のモデルとフィールド型とは?
1. Django(ジャンゴ)のモデルとフィールド型とは?

Djangoのモデルは、データベースに保存する情報をまとめた設計図です。フィールド型とは、その設計図の中で「どんな形のデータを入れるか」を決めるルールです。文字を書く欄なのか、数字を書く欄なのかを決めるイメージをすると理解しやすくなります。

2. 文字を保存するフィールド型

2. 文字を保存するフィールド型
2. 文字を保存するフィールド型

名前やメールアドレスなど、文字を保存したいときに使うのが文字系フィールドです。よく使われるのはCharField(チャーフィールド)とTextField(テキストフィールド)です。短い文字ならCharField、長い文章ならTextFieldと覚えると簡単です。


from django.db import models

class User(models.Model):
    name = models.CharField(max_length=50)
    profile = models.TextField()

3. 数字を保存するフィールド型

3. 数字を保存するフィールド型
3. 数字を保存するフィールド型

年齢や金額など、数字を扱うときは数値系フィールドを使います。IntegerField(インテジャーフィールド)は整数専用、FloatField(フロートフィールド)は小数を含む数字に使います。電卓で計算する数字を入れる場所だと考えると分かりやすいです。


class Product(models.Model):
    price = models.IntegerField()
    weight = models.FloatField()

4. 日付や時間を扱うフィールド型

4. 日付や時間を扱うフィールド型
4. 日付や時間を扱うフィールド型

誕生日や作成日時など、日付や時間を保存したい場合はDateField(デイトフィールド)やDateTimeField(デイトタイムフィールド)を使います。カレンダーや時計の情報をそのまま保存するイメージです。


class Event(models.Model):
    event_date = models.DateField()
    created_at = models.DateTimeField(auto_now_add=True)

5. 真偽値や選択肢を扱うフィールド型

5. 真偽値や選択肢を扱うフィールド型
5. 真偽値や選択肢を扱うフィールド型

はい・いいえのような二択にはBooleanField(ブーリアンフィールド)を使います。また、あらかじめ決めた選択肢から選ばせたい場合はchoicesを設定します。アンケート用紙のチェック欄を想像すると理解しやすいです。


class Article(models.Model):
    is_public = models.BooleanField(default=True)

6. ファイルや画像を保存するフィールド型

6. ファイルや画像を保存するフィールド型
6. ファイルや画像を保存するフィールド型

画像やファイルをアップロードしたい場合はFileField(ファイルフィールド)やImageField(イメージフィールド)を使います。パソコンの中に保存する場所をDjangoが自動で管理してくれるので安心です。


class Photo(models.Model):
    image = models.ImageField(upload_to='images/')

7. 他のモデルとつながるフィールド型

7. 他のモデルとつながるフィールド型
7. 他のモデルとつながるフィールド型

Djangoの大きな特徴が、モデル同士をつなげられる点です。ForeignKey(フォーリンキー)は、別のモデルを参照するためのフィールドです。名簿で「クラス」と「生徒」をひも付けるようなイメージです。


class Category(models.Model):
    name = models.CharField(max_length=30)

class Book(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE)

8. フィールド型を選ぶときの考え方

8. フィールド型を選ぶときの考え方
8. フィールド型を選ぶときの考え方

フィールド型は「何を保存したいか」で選びます。文字なのか、数字なのか、日付なのかを一つずつ整理することが大切です。最初は難しく感じますが、ノートに項目を書く感覚で考えると、自然と正しいフィールド型が選べるようになります。

カテゴリの一覧へ
新着記事
New1
Flask
Flaskでマイグレーション管理を始めよう!Flask-Migrateの使い方と手順
New2
Django
Djangoの逆引きURL(reverse)とは?初心者でもわかるURLルーティング入門
New3
Flask
Flaskアプリのメモリ使用量を最適化!初心者でもできる軽量化の裏技集
New4
Flask
FlaskでリダイレクトやURL生成を行う方法!便利な関数の使い方を解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.2
Java&Spring記事人気No2
Flask
FlaskのBlueprintとは?機能ごとに分割して管理する基本設計を学ぼう
No.3
Java&Spring記事人気No3
Python
PythonでSQLデータベースのパフォーマンスを向上させる方法|初心者でもわかる高速化の基本
No.4
Java&Spring記事人気No4
Python
Pythonのリストを分割する方法を完全ガイド!初心者でもわかるスライス・split・itertoolsの使い方
No.5
Java&Spring記事人気No5
Flask
Flaskでデータベースエラーを処理する方法!初心者にもわかる例外の使い方
No.6
Java&Spring記事人気No6
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.7
Java&Spring記事人気No7
Flask
Flaskアプリのテスト性を高める設計方法まとめ
No.8
Java&Spring記事人気No8
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説