Djangoバリデーション入門|初心者でもわかるフィールドオプション(max_length・blank・null)完全解説
生徒
「Djangoで入力チェック(バリデーション)って何ですか?パソコンも触ったことがなくて……」
先生
「Djangoのバリデーションは、文字の長さや未入力を防ぐための“見張り番”みたいなものです。」
生徒
「見張り番……?具体的には何をしてくれるんですか?」
先生
「たとえば“名前は20文字まで”“空白はダメ”といったルールを、Djangoが自動で確認してくれます。」
生徒
「それなら間違えて入力しても安心ですね!」
1. Djangoのバリデーションとは何か?
Djangoのバリデーションとは、ユーザーが入力した内容を自動でチェックしてくれる仕組みです。たとえば、申込用紙に名前を書き忘れたら受付してもらえませんよね。Djangoでも同じで、「空欄はダメ」「長すぎる文字はダメ」といったルールを決めておくことで、間違ったデータを防ぎます。
特にDjangoでは、モデル(データの設計図)にルールを書くことで、プログラム初心者でも安全な入力チェックができます。
2. フィールドオプションとは?初心者向けに解説
フィールドオプションとは、「この入力欄はどういうルールにするか」を決める設定です。紙の申込書でいうと、「ここは必須」「ここは20文字以内」と書いてある注意書きのようなものです。
Djangoのモデルでは、models.CharFieldなどにオプションを付けることで、バリデーションを設定します。
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かどうか
blankは「入力画面で空白を許可するかどうか」を決めます。たとえば、ニックネームは書いても書かなくても良い、という場合に使います。
class Profile(models.Model):
nickname = models.CharField(max_length=30, blank=True)
blank=Trueにすると、何も入力しなくてもエラーになりません。逆にblank=False(省略時も同じ)だと必須項目です。
5. nullとは?データベースで空にできるか
nullは少し難しく感じますが、「データベースに何も入れない状態を許すか」という意味です。データベースとは、情報をしまう大きな引き出しのようなものです。
class Article(models.Model):
summary = models.TextField(null=True)
null=Trueにすると、データ自体が存在しない状態を許可します。画面入力とは別の話なので、blankとは役割が違います。
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バリデーション
Djangoのバリデーションは、コンビニのレジにある年齢確認ボタンのような存在です。押し忘れやミスを防ぎ、ルール違反を自動で止めてくれます。
プログラミング未経験でも、ルールを一度書けばDjangoがずっと見張ってくれるので安心です。
8. Django初心者が最初に覚えるべきポイント
最初は、max_length・blank・nullの3つだけ理解できれば十分です。これだけで入力ミスの多くを防げます。
Djangoのバリデーションは、難しい知識がなくても使えるのが最大の魅力です。