Django プロジェクトを Django 1.11 からアップグレードしています。プロジェクトを Django 2.1 に正常にアップグレードしました。Django 2.2 にアップグレードしたときに、「(admin.E130)クラス AimClass で定義されたアクションの名前属性 (実名ではない) は一意でなければなりません」というエラー メッセージが表示されました。
管理者クラスは
class AAdmin(admin.ModelAdmin)
def custom_action(self, request, queryset):
# perform custom action
.....
def custom_action_2(self, request, queryset):
# another custom actions
.....
action = [custom_action, custom_action_2]
class BAdmin(AAdmin):
def custom_action(self, request, queryset):
# performs different actions but has the same name as AAdmin action
.....
actions = AAdmin.actions + [custom_action]
問題: (admin.E130)クラス AimClass で定義されたアクションの名前属性 (実名ではない) は一意でなければなりません
AAdmin からcustom_actionを削除すると、エラーは解決されますが、 AAdminを継承する他のクラスでアクションを使用できなくなります。
目標:アクションを親クラスAAdminに保持し、子クラスBAdminでオーバーライドします。
注:コードは Django 2.1 まで正常に動作しています。