Форум сайта python.su
Добрый день!
Как известно, по умолчанию для каждой модели 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 для данной модели. Но как это сделать грамотно и надёжно, чтобы можно было пользоваться в дальнейшем, пока в голове не укладывается. Если кто-то делал подобное или знает готовые решения, буду благодарен за более-менее детальное описание процедуры.
Офлайн