Django_ModelAdminを使って管理画面を編集 #212日目
Djangoの管理サイトは、Djangoで作成したWebアプリのデータを管理するための組み込みアプリケーションです。利用するのは主に管理者(administrator)や開発者です。
この管理サイトはとても便利で、ここからモデルに対応したデータベースのレコードを操作すること(CRUD)や、ユーザーのパスワード変更、データ検索、ソート、フィルターなど様々な機能が備わっています。
本日は参考記事のコードを模写しながら、管理サイトをカスタマイズする方法をまとめてみたいと思います。
まず、管理サイトにmodels.pyで作成したモデルを登録します。
register()メソッドを使用し、引数に登録したいモデルクラスを指定します。これはDjangoでWebアプリを作成している時の一般的な手順です。
from django.contrib import admin
from .models import Booking
admin.site.register(Booking)
次からがカスタマイズの手順です。ModelAdminを継承してクラスを定義することができます。registerメソッドの第二引数にModelAdminを継承したクラスを指定することで、第一引数に指定したモデルに対してカスタマイズが適用されるようになります。
from django.contrib import admin
from .models import Booking
class BookingModelAdmin(admin.ModelAdmin):
list_display = [
'status',
'bkg_no',
'flag',
'created_at'
]
ordering = ('-created_at',)
admin.site.register(Booking, BookingModelAdmin)
list_displayやorderingはデフォルトで用意されているクラス変数です。
上記は簡単な例ですが、これを上手く応用することで、モデルにデータを登録した際の処理などを定義しておくこと等も可能です。
ここまでお読みいただきありがとうございました!
参考
この記事が気に入ったらサポートをしてみませんか?