2010-01-31 4 views
4

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

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

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

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

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

ответ

2

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

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

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

+1

django-авторитет также выглядит хорошим вариантом для рядовых уровней: это написан Jannis Leidel, который является разработчиком ядра Django. –

3

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

Смежные вопросы