本文へスキップ
BecomeCoder

Djangoコース · 第6章 アプリを組み立てる · レッスン29

管理サイト ― Django Admin

ローカル実施

導入

Django の一番の目玉が、この**管理サイト(Admin)**です。モデルを登録するだけで、データを追加・編集・削除できる管理画面が自動で完成します。多くのプロジェクトが、これだけで裏側の運用をまかなえます。

説明

管理サイトを使う手順は、たった数ステップです。

# blog/admin.py
from django.contrib import admin
from .models import Post

admin.site.register(Post)   # このモデルを管理画面で扱えるようにする

あとは管理者ユーザーを作ってログインするだけ。

python manage.py migrate            # auth / admin の表を用意
python manage.py createsuperuser    # 管理者アカウントを作成
python manage.py runserver
# → ブラウザで http://127.0.0.1:8000/admin/ を開く

register しただけで、次のような画面が自動生成されます。

flowchart TD
  A["/admin/ にログイン"] --> B["登録モデルの一覧<br/>Post / User / …"]
  B --> C["一覧画面<br/>検索・絞り込み・並び替え"]
  C --> D["追加・編集・削除フォーム"]

さらに、表示や操作をカスタマイズできます。

from django.contrib import admin
from .models import Post

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ("title", "views", "published")  # 一覧に出す列
    list_filter = ("published",)                    # 右側の絞り込み
    search_fields = ("title",)                      # 検索ボックスの対象
    ordering = ("-views",)                          # 既定の並び順
  • list_display … 一覧表に表示する列。
  • list_filter … サイドの絞り込みフィルタ。
  • search_fields … 検索対象のフィールド。

なぜ便利か:管理画面を自前で作ると、一覧・検索・入力フォーム・権限管理……と膨大な手間がかかります。Django はそれを「モデルを register するだけ」で用意してくれます。開発初期のデータ投入や、非エンジニアの運用担当者向けの管理ツールとして、実務で日常的に使われています。

管理サイトは、Django が「バッテリー同梱(必要なものが最初から入っている)」と言われる代表例です。