導入
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 が「バッテリー同梱(必要なものが最初から入っている)」と言われる代表例です。