Jak usunąć domyślną akcję usuwania w administratorze Django? Czy następująca praca?Usuń domyślną akcję usuwania w Django admin
actions = [ ]
Jak usunąć domyślną akcję usuwania w administratorze Django? Czy następująca praca?Usuń domyślną akcję usuwania w Django admin
actions = [ ]
to działa:
def get_actions(self, request):
actions = super(YourAdmin, self).get_actions(request)
if 'delete_selected' in actions:
del actions['delete_selected']
return actions
do wykorzystania w przyszłości https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#disabling-actions – felix
W swojej klasie administratora, definiować has_delete_permission
wrócić False
:
class YourModelAdmin(admin.ModelAdmin):
...
def has_delete_permission(self, request, obj=None):
return False
Następnie, nie pokaże przycisk usuwać i nie pozwoli na usunięcie obiektów w panelu administratora.
Spowoduje to usunięcie przycisku usuwania, ale nie usunie opcji usuwania z listy rozwijanej, która służy do wybierania wielu wpisów i wykonywania operacji usuwania. –
@DawnTCherian, Masz rację. Ale usunięcie nie jest dozwolone; próba zwróci 403 zabronioną odpowiedź. – falsetru
@DawnTCherian, FYI, Twoje rozwiązanie ujawni przycisk usuwania ze strony administratora. – falsetru
Jeśli chcesz usunąć wszystkie działania:
class UserAdmin(admin.ModelAdmin):
model = User
actions = None
Jeśli chcesz jakieś konkretne działania:
class UserAdmin(admin.ModelAdmin):
model = User
actions = ['name_of_action_you_want_to_keep']
Akcje = ['name_of_action_you_want_to_keep'] nie działają dla Django 2.0 – fanny
Możesz wyłączyć „Usuń zaznaczone "akcja na terenie:
from django.contrib.admin import site
site.disable_action('delete_selected')
Kiedy trzeba podać tę czynność, należy dodać do listy 'delete_selected'
działania:
actions = ['delete_selected']
Do tego można użyć grupy i uprawnienia administratora w Django. –