Убрать кнопку добавить в 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.

Оцените статью

3.7 из 5 (всего 3 оценки)

captcha
Отмеченные звёздочкой поля ( * ) являются обязательными для заполнения.

Спасибо за ваш отзыв!

После нажатия кнопки "Отправить" ваше сообщение будет доставлено мне на почту.

Автор статьи

Артём Мальцев

Веб-разработчик, владеющий знаниями языка программирования Python, фреймворка Django, системы управления содержимым сайта Django CMS, платформы для создания интернет-магазина Django Shop и многих различных приложений, использующих эти технологии.

Права на использование материала, расположенного на этой странице https://vivazzi.pro/ru/it/remove-add-button/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Артём Мальцев
Ссылка на статью: <a href="https://vivazzi.pro/ru/it/remove-add-button/">https://vivazzi.pro/ru/it/remove-add-button/</a>

Больше: Правила использования сайта

Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.

Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.

Комментарии: 0

Вы можете оставить комментарий как незарегистрированный пользователь.

Но зарегистрировавшись, вы сможете:

  • получать оповещения об ответах
  • просматривать свои комментарии
  • иметь возможность использовать все функции разработанных сервисов

Для комментирования от своего имени войдите или зарегистрируйтесь на сайте Vuspace

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте

Выберите валюту для отображения денежных единиц