Admin actionsを使う5 - Admin actionsの一括非有効化編

Admin actionsによる削除

Admin actionsによる削除は便利ですが、手違いで削除してしまう可能性があるので危険でもあります。
対策としては、

  1. 削除するデータを表示した確認画面を作成する。
  2. "選択されたPostの削除"を非有効化する。

などが考えられます。

指定したAdmin actionsの非有効化

ここでは、手軽に出来る"選択されたPostの削除"を非有効化をしてみます。

記述するファイルは、ここではadmin.pyとします。

admin.py

from django.contrib import admin

…

admin.site.disable_action('delete_selected')

これだけです。
この記述によって、Admin siteに登録されている全modelを対象に"選択されたPostの削除"が非有効化になります。

とはいえ、"選択されたPostの削除"が必要な場合があります。
その場合には

admin.py

from django.contrib import admin
from django.contrib.admin.actions import delete_selected

…

class SampleAdmin(admin.ModelAdmin):
    …
    actions = ['delete_selected', ]
    …

admin.site.disable_action('delete_selected')

という風に必要な分だけ追加すれば使用することが出来ます。

twitter 2009-09-30 19:08:42.875902

関連ページ

参照サイト

Recent Updates

URLConf Tip 01 - キャプチャの有無にかかわらず同一のviewで処理する
Markdownの入力補助"wmd"をAdmin siteで使う
ModelFormでfieldのwidgetを変更する
動的なformを作る 6 - Dynamic Inline Admin site編
Formsetsを使う3 - inlineformset_factory編
動的なformを作る 5 - django-dynamic-formset編
Formクラスからメディアを定義する
複数のmodelを結合する 2 - Proxy model編
複数のmodelを結合する 1
ModelFormでfieldの表示順番を変える
Admin siteのwidgetを個別に変更する
formfield_overridesを使ってAdmin siteのwidgetを変更する
Admin siteのlist_displayをカスタマイズする - リンク編
Admin siteのlist_displayをカスタマイズする - 基本編
Admin siteのTextareaの高さを自在に変更する - admin.py編