Удалить действие удаления по умолчанию в администраторе Django

Как удалить действие удаления по умолчанию в администраторе Django? Будет ли следующая работа?

actions = [ ] 

Ответ 1

Это работает:

def get_actions(self, request):
    actions = super().get_actions(request)
    if 'delete_selected' in actions:
        del actions['delete_selected']
    return actions

Это также рекомендуемый способ сделать это на основе документации Django ниже:

Условное включение или отключение действий

Ответ 2

В вашем классе администратора определите has_delete_permission для возврата False:

class YourModelAdmin(admin.ModelAdmin):
    ...

    def has_delete_permission(self, request, obj=None):
        return False

Затем он не будет показывать кнопку удаления и не позволит вам удалять объекты в интерфейсе администратора.

Ответ 3

Если вы хотите удалить все действия:

class UserAdmin(admin.ModelAdmin):
    model = User
    actions = None

Если вам требуется определенное действие:

class UserAdmin(admin.ModelAdmin):
    model = User
    actions = ['name_of_action_you_want_to_keep']

Ответ 4

Вы можете отключить действие "удалить выбранное" на сайте:

from django.contrib.admin import site
site.disable_action('delete_selected')

Когда вам нужно включить это действие, добавьте 'delete_selected' в список действий:

actions = ['delete_selected']

Документация