カテゴリ: Django 更新日: 2026/02/17

Djangoバリデーション入門|初心者でもわかるフィールドオプション(max_length・blank・null)完全解説

Djangoバリデーションでよく使うフィールドオプション(max_length・blank・null)
Djangoバリデーションでよく使うフィールドオプション(max_length・blank・null)

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

生徒

「Djangoで入力チェック(バリデーション)って何ですか?パソコンも触ったことがなくて……」

先生

「Djangoのバリデーションは、文字の長さや未入力を防ぐための“見張り番”みたいなものです。」

生徒

「見張り番……?具体的には何をしてくれるんですか?」

先生

「たとえば“名前は20文字まで”“空白はダメ”といったルールを、Djangoが自動で確認してくれます。」

生徒

「それなら間違えて入力しても安心ですね!」

1. Djangoのバリデーションとは何か?

1. Djangoのバリデーションとは何か?
1. Djangoのバリデーションとは何か?

Djangoのバリデーションとは、ユーザーが入力した内容を自動でチェックしてくれる仕組みです。たとえば、申込用紙に名前を書き忘れたら受付してもらえませんよね。Djangoでも同じで、「空欄はダメ」「長すぎる文字はダメ」といったルールを決めておくことで、間違ったデータを防ぎます。

特にDjangoでは、モデル(データの設計図)にルールを書くことで、プログラム初心者でも安全な入力チェックができます。

2. フィールドオプションとは?初心者向けに解説

2. フィールドオプションとは?初心者向けに解説
2. フィールドオプションとは?初心者向けに解説

フィールドオプションとは、「この入力欄はどういうルールにするか」を決める設定です。紙の申込書でいうと、「ここは必須」「ここは20文字以内」と書いてある注意書きのようなものです。

Djangoのモデルでは、models.CharFieldなどにオプションを付けることで、バリデーションを設定します。

3. max_lengthとは?文字数を制限するルール

3. max_lengthとは?文字数を制限するルール
3. max_lengthとは?文字数を制限するルール

max_lengthは「最大で何文字まで入力できるか」を決めるオプションです。名前欄に小説みたいな文章を書かれたら困りますよね。そのための制限です。


from django.db import models

class User(models.Model):
    name = models.CharField(max_length=20)

この例では、名前は20文字までしか入力できません。21文字以上入力すると、Djangoが自動でエラーを出してくれます。

4. blankとは?画面入力で空欄OKかどうか

4. blankとは?画面入力で空欄OKかどうか
4. blankとは?画面入力で空欄OKかどうか

blankは「入力画面で空白を許可するかどうか」を決めます。たとえば、ニックネームは書いても書かなくても良い、という場合に使います。


class Profile(models.Model):
    nickname = models.CharField(max_length=30, blank=True)

blank=Trueにすると、何も入力しなくてもエラーになりません。逆にblank=False(省略時も同じ)だと必須項目です。

5. nullとは?データベースで空にできるか

5. nullとは?データベースで空にできるか
5. nullとは?データベースで空にできるか

nullは少し難しく感じますが、「データベースに何も入れない状態を許すか」という意味です。データベースとは、情報をしまう大きな引き出しのようなものです。


class Article(models.Model):
    summary = models.TextField(null=True)

null=Trueにすると、データ自体が存在しない状態を許可します。画面入力とは別の話なので、blankとは役割が違います。

6. blankとnullの違いを超かんたんに理解

6. blankとnullの違いを超かんたんに理解
6. blankとnullの違いを超かんたんに理解

初心者が一番つまずくのがここです。blankは人間向け、nullは機械向けと覚えてください。

  • blank:入力画面で空白OK?
  • null:データベースに空で保存OK?

class Sample(models.Model):
    comment = models.CharField(max_length=50, blank=True, null=True)

この場合、画面でも空欄OK、保存するときも空OKという設定になります。

7. 実生活に例えるDjangoバリデーション

7. 実生活に例えるDjangoバリデーション
7. 実生活に例えるDjangoバリデーション

Djangoのバリデーションは、コンビニのレジにある年齢確認ボタンのような存在です。押し忘れやミスを防ぎ、ルール違反を自動で止めてくれます。

プログラミング未経験でも、ルールを一度書けばDjangoがずっと見張ってくれるので安心です。

8. Django初心者が最初に覚えるべきポイント

8. Django初心者が最初に覚えるべきポイント
8. Django初心者が最初に覚えるべきポイント

最初は、max_lengthblanknullの3つだけ理解できれば十分です。これだけで入力ミスの多くを防げます。

Djangoのバリデーションは、難しい知識がなくても使えるのが最大の魅力です。

カテゴリの一覧へ
新着記事
New1
Django
Djangoバリデーション入門|初心者でもわかるフィールドオプション(max_length・blank・null)完全解説
New2
Flask
FlaskアプリをAWS Lambdaでサーバーレス化する方法を完全ガイド!初心者でもできるデプロイ手順
New3
Python
Pythonで複数の例外をまとめてキャッチする方法を完全解説!初心者でもわかる例外処理入門
New4
Python
Pythonでリストをコピーする方法!copy()・スライス・list()の使い方を比較
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.3
Java&Spring記事人気No3
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.4
Java&Spring記事人気No4
Python
Pythonで空白や不要な文字を削除する方法!strip(), rstrip(), lstrip() の使い方を初心者向けに解説
No.5
Java&Spring記事人気No5
Python
Pythonのコーディング規約(PEP8)とは?初心者でもわかる書き方の基本ルール
No.6
Java&Spring記事人気No6
Flask
Flaskでフロントエンドからファイルアップロードを行う基本手順【初心者向け】
No.7
Java&Spring記事人気No7
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.8
Java&Spring記事人気No8
Flask
Flaskでデータベースエラーを処理する方法!初心者にもわかる例外の使い方