Djangoの管理画面にあるデータ一覧の表示をカスタマイズする

少し前からちょこちょこDjangoを触っていますが、管理画面の調整を行っていて、管理画面に表示する内容を変更したいなと思っていました。今回ようやく重い腰をあげて調べ、対応できたので備忘録です。

環境

  • Django v1.11.7

管理画面へのモデルの追加

管理画面でデータを扱うために、扱うデータ用のモデルを追加します。

from django.contrib import admin
from .models import HogeModel

admin.site.register(HogeModel)

最初は複数登録していたので、リストにモデル名を追加して admin.site.register() に追加していました。

一覧の表示項目を変更する

admin.ModelAdmin を使った class を作成し、 list_display に表示するモデルのプロパティを追加することでカスタマイズする事ができました。
また、設定したclassとモデルを紐付けるために、第1引数にモデル、第2引数にaddminモデルを指定します。

from django.contrib import admin
from .models import HogeModel

class HogeModelAdmin(admin.ModelAdmin):
    list_display = ('PropertyA', 'PropertyB')


admin.site.register(HogeModel, HogeModelAdmin)

今回は単にプロパティを指定して該当するデータを表示するようにしましたが、メソッドを指定することもできるようです。カテゴリの一覧なんかで件数拾って表示したりも出来るのかな。
もう少し触ってみようと思います。