Wie die Standardaktion zum Löschen in Django admin entfernen? Würde die folgende Arbeit?Entfernen Sie die Standardaktion zum Löschen in Django admin
actions = [ ]
Wie die Standardaktion zum Löschen in Django admin entfernen? Würde die folgende Arbeit?Entfernen Sie die Standardaktion zum Löschen in Django admin
actions = [ ]
Dies funktioniert:
def get_actions(self, request):
actions = super(YourAdmin, self).get_actions(request)
if 'delete_selected' in actions:
del actions['delete_selected']
return actions
für zukünftige Referenz https://docs.djangoproject.com/de/dev/ref/contrib/admin/actions/#disabling-actions – felix
In Ihrem Admin-Klasse definieren has_delete_permission
False
zurückzukehren:
class YourModelAdmin(admin.ModelAdmin):
...
def has_delete_permission(self, request, obj=None):
return False
Dann wird es nicht Taste löschen, und Sie werden nicht zulassen, dass Objekte in der Administrationsoberfläche löschen.
Dadurch wird die Löschschaltfläche entfernt, aber die Löschoption wird nicht aus der Dropdown-Liste entfernt, mit der mehrere Einträge ausgewählt und Löschaktionen ausgeführt werden. –
@DawnTherian, Sie haben Recht. Aber das Löschen ist nicht erlaubt; Versuch wird 403 verbotene Antwort zurückgeben. – falsetru
@DawnTherian, FYI, Ihre Lösung wird löschen Schaltfläche im Detail Admin-Seite enthüllen. – falsetru
Wenn Sie alle die Aktion entfernen möchten:
class UserAdmin(admin.ModelAdmin):
model = User
actions = None
Wenn Sie einige konkrete Aktion wollen:
class UserAdmin(admin.ModelAdmin):
model = User
actions = ['name_of_action_you_want_to_keep']
Die Aktionen = ['name_of_action_you_want_to_keep'] funktioniert nicht für Django 2.0 – fanny
Sie können deaktivieren „Ausgewählte löschen "Aktion Site-weit:
from django.contrib.admin import site
site.disable_action('delete_selected')
Wenn Sie benötigen, diese Aktion enthalten, fügen 'delete_selected'
auf der Aktionsliste:
actions = ['delete_selected']
Für, dass Sie Gruppen und Berechtigungen in django Admin verwenden können. –