удаление кнопок / ссылок в админке django - PullRequest
2 голосов
/ 05 марта 2012

У меня есть приложение, и я использую администратора django, но мои приложения не позволяют удалять данные, и у администратора django есть кнопка / ссылка delete.Я уже удалил delete action.

мой вопрос, как я могу удалить кнопку / ссылку delete на странице администратора в django?

Ответы [ 2 ]

8 голосов
/ 06 марта 2012
class MyAdmin(ModelAdmin):

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

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

Если разрешение на удаление не предоставлено, кнопка «Удалить» одного объекта исчезнет. Список действий "действие" (выберите список для применения к объектам с установленным флажком) будет по-прежнему отображаться, поскольку у вас может быть разрешение на удаление некоторых объектов. Вы можете удалить оба кода выше.

УТОЧНЕНИЕ (для downvoters): администратор проверяет, есть ли у текущего пользователя разрешение на удаление, а затем показывает / скрывает кнопку / кнопки соответственно. Вы написали «мои приложения не позволяют удалять», поэтому я предположил, что вы забрали разрешения. Суперпользователь не просматривается в разрешениях, суперпользователь всегда возвращает «да, у меня есть такое разрешение». Если вы хотите, чтобы кнопки исчезли для суперпользователей, вы должны использовать мой код выше. Для других пользователей просто отнимите разрешение согласно ответу Secator.

7 голосов
/ 05 марта 2012

Не удаляйте и не меняйте ничего в админке.

Вместо этого удалите разрешение пользователя / группы на удаление данной модели. Если у пользователя нет разрешения на удаление, кнопка удаления не появится ни на одной странице, связанной с этой моделью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...