Убрать кнопку добавить в django
30 июня 2016 г. 4:51
Есть несколько способов убрать кнопку "Добавить" в админке Django. Каждый способ хорош под конкретную задачу.
Ограничение прав на редактирование объекта
Создать в админке группу "Могут просматривать" и добавить нужные права (например, только на изменение объекта), тем самым ограничивая права на создание объектов. А затем необходимым пользователям добавить эту группу.
Мне не особо нравится такой способ. Он мне кажется долговатым, и к тому же иногда хочется, чтобы и суперпользователи не видели эту кнопку.
Переопределение метода has_add_permission
Для конкретной модели в ModelAdmin можно запретить добавлять объект:
@admin.register(MyModel) class MyModelAdmin(admin.ModelAdmin): def has_add_permission(self, request): return False
Этот метод хорош, но бывает, что есть функциональность, которая добавляет объект с другой части админки, и тогда мы встретим сообщение, что не хватает прав на добавление объекта. Конкретный пример рассмотрен ниже.
Переопределение шаблона change_list.html
Идея этого способа: убрать кнопку на уровне html. Для этого нужно создать файл my_app/templates/admin/my_app/my_model/change_list.html:
{% extends 'admin/change_list.html' %} {% block object-tools-items %}{% endblock %}
В шаблоне можно увидеть, что идёт переопределение блока object-tools-items, в котором как раз должна находится кнопка "Добавить".
Важно соблюдать, где лежит файл change_list.html иначе django не найдёт наш переопределённый шаблон.
Переопределяемый стандартный шаблон лежит в django/contrib/admin/templates/admin/change_list.html. Если его хорошо изучить, то можно добавлять или изменять различные части страницы.
Мне именно такой способ подошёл, когда я столкнулся с задачей убрать кнопку "Добавить" для списка модели расширения страницы PageExtension в django cms. Тем самым я не могу добавить новый PageExtension из списка, но могу добавить стандартно как это делается из меню Django CMS.
Похожие статьи:
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 0