カテゴリ: 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のログレベル(DEBUG/INFO/WARNING/ERROR)を使い分ける方法を完全ガイド!
New2
Python
Pythonのfrozensetとは?ミュータブルなsetとの違いをわかりやすく解説
New3
Python
Pythonでセットを活用してデータをフィルタリングする方法!初心者でもわかるセットの基本と使い方
New4
Python
Pythonの辞書操作まとめ!初心者が知っておくべき便利ワザ集
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.2
Java&Spring記事人気No2
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.3
Java&Spring記事人気No3
Flask
FlaskアプリのSECRET_KEYの設定方法を完全ガイド!初心者でもわかるセキュリティ対策
No.4
Java&Spring記事人気No4
Flask
Flaskで非同期処理を成功させるベストプラクティス集|初心者でも失敗しない考え方
No.5
Java&Spring記事人気No5
Django
Djangoモデル入門|初心者が最初に知るべきORMの基本操作
No.6
Java&Spring記事人気No6
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.7
Java&Spring記事人気No7
Python
Pythonのリストを分割する方法を完全ガイド!初心者でもわかるスライス・split・itertoolsの使い方
No.8
Java&Spring記事人気No8
Flask
Flaskのログをファイルに保存する方法!初心者でもわかる設定手順を徹底解説