Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Модифицировать админку: добавить view permission [RSS Feed]

#1 Июль 13, 2011 10:43:34

strannik747
От:
Зарегистрирован: 2011-02-19
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Модифицировать админку: добавить view permission

Добрый день!
Как известно, по умолчанию для каждой модели Django создает 3 разрешения: add, change, delete.

При использовании стандартной админки если у модели есть разрешение “add”, то:
- в список действий на странице admin/index.html добавляется ссылка “Add”
- при нажатии ссылки открывается change_form.html для добавления нового

Если у модели есть разрешение “change”, то:
- название модели становится ссылкой
- в список действий добавляется ссылка “Change”
- при нажатии ссылки открывается change_list.html (просмотр всех записей), а при выборе конкретной - change_form.html для изменения

Если у модели нет ни разрешения “add”, ни разрешения “change”, то она вообще в списке моделей в админке не отображается.

Возникла следующая проблема: нужно реализовать разрешение “view”, которое:
- разрешало бы только просматривать данные в виде списка, без возможности изменения (то есть по сути = разрешению “change” без возможности редактирования)
- отображалось бы на странице admin/index.html в виде ссылки “View”
- передавалось бы как в app_list.models.perms для admin/index.html
- учитывалось как и стандартные при syncdb (желательно)
- при одновременном задании разрешений change и view, наличие view игнорируется

Доки читал. Даже реализовал вручную для одной модели, заменив надпись “Change” на “View” и поменяв шаблоны change_form.html и change_list.html для данной модели. Но как это сделать грамотно и надёжно, чтобы можно было пользоваться в дальнейшем, пока в голове не укладывается. Если кто-то делал подобное или знает готовые решения, буду благодарен за более-менее детальное описание процедуры.



Офлайн

  • Начало
  • » Django
  • » Модифицировать админку: добавить view permission[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version