Comment supprimer l'action de suppression par défaut dans Django admin? Est-ce que cela fonctionnerait?
actions = [ ]
Cela marche:
def get_actions(self, request):
actions = super().get_actions(request)
if 'delete_selected' in actions:
del actions['delete_selected']
return actions
C'est également la façon recommandée de le faire basée sur la documentation de Django ci-dessous:
Dans votre classe d'administration, définissez has_delete_permission
pour renvoyer False
:
class YourModelAdmin(admin.ModelAdmin):
...
def has_delete_permission(self, request, obj=None):
return False
Ensuite, il n'affichera pas le bouton Supprimer et ne vous permettra pas de supprimer des objets dans l'interface d'administration.
Vous pouvez désactiver l'action "supprimer la sélection" à l'échelle du site:
from Django.contrib.admin import site
site.disable_action('delete_selected')
Lorsque vous devez inclure cette action, ajoutez 'delete_selected'
à la liste d'actions:
actions = ['delete_selected']
Si vous souhaitez supprimer toute l'action:
class UserAdmin(admin.ModelAdmin):
model = User
actions = None
Si vous souhaitez une action spécifique:
class UserAdmin(admin.ModelAdmin):
model = User
actions = ['name_of_action_you_want_to_keep']