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

Django ModelFormの使い方完全ガイド!初心者でもわかる新規登録フォーム作成

Django ModelFormで新規登録フォームを作る手順|保存までの流れ
Django ModelFormで新規登録フォームを作る手順|保存までの流れ

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

生徒

「Djangoでユーザー登録みたいな入力フォームを作りたいんですが、何から始めればいいですか?」

先生

「DjangoにはModelFormという、とても便利な仕組みがあります。これを使うと、データベースと連動したフォームを簡単に作れますよ。」

生徒

「データベースとかフォームって難しそうです……。」

先生

「大丈夫です。ノートに名前を書く感覚で理解できるよう、順番に説明していきましょう。」

1. Django ModelFormとは何かを超やさしく説明

1. Django ModelFormとは何かを超やさしく説明
1. Django ModelFormとは何かを超やさしく説明

Django ModelFormとは、Djangoのモデル(データベースの設計図)を元にして、自動で入力フォームを作ってくれる仕組みです。たとえるなら、名簿の設計図を作ると、その設計図から「名前を書く紙」を自動で用意してくれるようなものです。

Django、ModelForm、新規登録フォーム、フォーム作成、データ保存といったキーワードで検索されることが多く、Webアプリ開発では必ず通る道です。

2. 新規登録フォーム作成の全体の流れ

2. 新規登録フォーム作成の全体の流れ
2. 新規登録フォーム作成の全体の流れ

Django ModelFormで新規登録フォームを作る流れは、とてもシンプルです。

  1. モデルを作る(保存したいデータを決める)
  2. ModelFormを作る(入力フォームを作る)
  3. ビューでフォームを表示する
  4. 入力内容を保存する

料理で例えると、「レシピを書く → 材料を並べる → 調理する → 盛り付ける」という流れと同じです。

3. モデルを作成して保存先を決めよう

3. モデルを作成して保存先を決めよう
3. モデルを作成して保存先を決めよう

まずは、データを保存する場所を決めます。これがモデルです。モデルとは「どんなデータを保存するか」を決める設計図です。


from django.db import models

class User(models.Model):
    name = models.CharField(max_length=50)
    email = models.EmailField()

ここでは「名前」と「メールアドレス」を保存します。CharFieldは文字、EmailFieldはメール専用の箱だと考えてください。

4. ModelFormを使ってフォームを作成

4. ModelFormを使ってフォームを作成
4. ModelFormを使ってフォームを作成

次に、モデルを元にフォームを作ります。これがModelFormの出番です。


from django import forms
from .models import User

class UserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ['name', 'email']

Metaとは「設定を書く場所」です。どのモデルを使うか、どの項目をフォームに出すかを指定します。

5. ビューでフォームを表示する

5. ビューでフォームを表示する
5. ビューでフォームを表示する

ビューは、画面に何を表示するかを決める場所です。ここでフォームを画面に出します。


from django.shortcuts import render
from .forms import UserForm

def user_create(request):
    form = UserForm()
    return render(request, 'user_form.html', {'form': form})

requestは「ブラウザからのお願い」、renderは「画面を作る係」だと思ってください。

6. HTMLテンプレートでフォームを表示

6. HTMLテンプレートでフォームを表示
6. HTMLテンプレートでフォームを表示

次は画面側です。HTMLでフォームを表示します。


<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">登録</button>
</form>

csrf_tokenは不正アクセス防止のお守り、form.as_pはフォームを自動で並べてくれる便利機能です。

7. 入力内容を保存する処理

7. 入力内容を保存する処理
7. 入力内容を保存する処理

最後に、入力された内容をデータベースへ保存します。


def user_create(request):
    if request.method == 'POST':
        form = UserForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = UserForm()
    return render(request, 'user_form.html', {'form': form})

is_valid()は「入力チェック」、save()は「保存ボタン」です。これだけで新規登録が完成します。

8. Django ModelFormを使うメリット

8. Django ModelFormを使うメリット
8. Django ModelFormを使うメリット

Django ModelFormを使うと、フォーム作成・入力チェック・保存までを一気に行えます。コードが短くなり、ミスも減ります。

Django、ModelForm、フォーム処理、新規登録、初心者向け解説といった検索キーワードでも多く使われており、学んで損はありません。

カテゴリの一覧へ
新着記事
New1
Django
Djangoバリデーション完全入門|cleanメソッドで学ぶカスタムチェックの書き方【初心者向け】
New2
Flask
FlaskとAWS S3を連携!静的ファイルを効率よく配信する初心者向け完全ガイド
New3
Python
Pythonで例外の種類ごとに処理を分ける方法を完全解説!初心者でもわかる複数except入門
New4
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
人気記事
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
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.5
Java&Spring記事人気No5
Python
Pythonのコーディング規約(PEP8)とは?初心者でもわかる書き方の基本ルール
No.6
Java&Spring記事人気No6
Python
Pythonで空白や不要な文字を削除する方法!strip(), rstrip(), lstrip() の使い方を初心者向けに解説
No.7
Java&Spring記事人気No7
Flask
Flaskでフロントエンドからファイルアップロードを行う基本手順【初心者向け】
No.8
Java&Spring記事人気No8
Flask
Flaskでデータベースエラーを処理する方法!初心者にもわかる例外の使い方