Как реализовать клиентский админ в Django? - PullRequest
4 голосов
/ 31 января 2010

Я создаю простое приложение, своего рода менеджер проектов / задач, в котором у меня может быть несколько проектов и несколько задач, назначенных одному проекту.

Я включил администратор Django для всех подобных задач, и он работает как шарм. Кроме того, у меня есть пользователи, которым назначены проекты. Теперь я хочу включить урезанную версию администратора для тех пользователей, где:

  • Они могут только управлять / видеть задачи в рамках своего собственного проекта.
  • Они могут удалять только свои задачи
  • некоторые другие незначительные ограничения.

Каков наилучший подход к этому? Должен ли я создать другое приложение с настраиваемыми представлениями и страницами для задач редактирования клиента или мне нужно удалить другой экземпляр администратора и настроить его только для них?

Надеюсь, это было понятно и не слишком субъективно. Спасибо.

Ответы [ 2 ]

3 голосов
/ 31 января 2010

+ 1 для пользовательского приложения, взлом администратора может занять больше времени, чем просто создание собственного администратора из общих видов.

2 голосов
/ 31 января 2010

Я думаю, что лучшим способом сделать это в любом случае было бы как-то реализовать разрешения на уровне строк.
На данный момент лучшим решением для этого, вероятно, является использование django-granular-permissions .

Как и Дмитрий, я тоже за кастомное приложение. Используя общие представления, моделиформ и так далее, вероятно, приведут к меньшему количеству работы, чем изменение приложения администратора (которое на самом деле не создано для взлома).

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

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