🐍
【Python】Django Adminを使ってみよう
開発環境:
- windows 11
- Vscode 1.87.2
- Docker 26.1.1
- Docker-compose 2.27.0
- python
- Django
達成目標
- Django Admin画面を開き、データを挿入することができる。
前提
- Djangoのマニュアルの
Writing your first Django app, part 2
に準ずる内容となっている。
- アプリケーションのトップページが表示されている状態かつデータベースの設定が完了している状態から解説をしていく。
開発環境の構築がまだの方はこちらから↓
データベースの設定がまたの方はこちらから↓
基礎編
Django Admin
とは
Djangoフレームワークに組み込まれている管理用のWebインターフェース。Django Adminを使用すると、管理画面を一から作成する必要がなくなり、開発の効率を上げることができる
1.管理者ユーザーを作成
requirements.txtの内容が表示される。
docker-compose exec web python manage.py createsuperuser
出力結果
$ docker-compose exec web python manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: admin@example.com
Password:
Password (again):
Superuser created successfully.
2.モデルを作成
admin.py
ファイルへ追記
アプリケーションフォルダ内の以下をadmin.pyへ全て追加
from .models import Category
@admin.register(Category) # 管理画面に登録
class CategoryAdmin(admin.ModelAdmin):
list_display = ('id', 'name') # 管理画面で表示する列
モデルを管理画面に追加する際の方法
小規模プロジェクトの場合
from django.contrib import admin
from .models import Category
admin.site.register(Category)
大規模プロジェクトの場合(検索できたりなど拡張性がある)
from django.contrib import admin
from .models import Category
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
list_display = ('id', 'name') # 表示する列
search_fields = ('name',) # 検索対象
list_filter = ('name',) # フィルター
models.py
ファイルへ追記
アプリケーションフォルダ内の以下をmodels.pyへ全て追加
class Category(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
3.マイグレーションを実行
マイグレーションを実行する
docker-compose exec web python manage.py makemigrations
docker-compose exec web python manage.py migrate
出力結果
$ docker-compose exec web python manage.py makemigrations
$ docker-compose exec web python manage.py migrate
Migrations for 'users':
users/migrations/0002_category.py
- Create model Category
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions, users
Running migrations:
Applying users.0002_category... OK
4.コンテナの再起動
コンテナの再起動
docker-compose restart
docker-compose up
Discussion