Django adminのlist_displayをカスタマイズしたときにリストの表示名を変えたい
今回はDjango adminのlist_displayをカスタマイズしたときにリストの表示名を変えたいときにどのようにすれば良いのかについてご紹介いたします。
Django adminのlist_displayをカスタマイズしたときにリストの表示名を変えたい
Djangoでlist_displayをカスタマイズしたとします。
すると、カスタマイズしたlist_displayに対してメソッドの表示名が大文字になってそのまま表示されてしまいます。
例として、下記のようにtest_listをlist_displayに追加したとしましょう。
1 2 3 4 5 6 7 8 9 10 11 |
@admin.register(User) class AdminUserAdmin(UserAdmin): (略) list_display = ('username', 'email', 'full_name', 'is_staff', 'test_list') (略) def test_list(self, obj): return format_html('<button type="button" class="button" onclick="testFucntion(\'' + obj.email + '\')">送信</button>') |
すると、Djangoのadminでは下記のように追加したtest_listが「TEST LIST」と大文字になって表示されてしまいます。
この「TEST LIST」を変えたいという場面が出てくると思います。
では、どうやって「TEST LIST」を変えれば良いかというと、メソッドの下に
test_list.short_description = 'xxx’
を追加すれば良いだけです。
xxxの部分は自分が変更したい名前になります。
上記のソースコードの例だと、
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@admin.register(User) class AdminUserAdmin(UserAdmin): (略) list_display = ('username', 'email', 'full_name', 'is_staff', 'test_list') (略) def test_list(self, obj): return format_html('<button type="button" class="button" onclick="testFucntion(\'' + obj.email + '\')">送信</button>') test_list.short_description = '送信ボタン' |
と修正すればOKです。
実行結果は下記の画像のようになります。
ちなみに余談ですがtest_list.short_descriptionをdef test_list(self, obj)より前にするとエラーが起こります。
終わりに
今回はDjango adminのlist_displayをカスタマイズしたときにリストの表示名を変えたいときにどのようにすれば良いのかについてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません