Реализация нескольких уровней администрирования в Джанго - PullRequest
2 голосов
/ 15 марта 2011

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

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

Пример грубого дизайна:

  • ME (Суперпользователь)
    • Клиенты
      • Клиенты
      • Коллекции опросов
        • Пользователи
          • Приглашенные
        • Обзоры
          • Приглашенные (приглашенный является ребенком опроса и пользователя)
        • Вопросы
        • Etc

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

Есть ли способ реализовать это в Django, возможно, путем создания пользовательских типов пользователей с помощью наследования и назначения им пользовательских сайтов администратора?

Я понимаю, что может быть проще просто создавать свои собственные приложения для управления различными интерфейсами администратора, и в таком случае есть ли простой способ управлять раздельной аутентификацией этих типов пользователей и их различных систем управления в стиле администратора?

1 Ответ

1 голос
/ 10 мая 2011

Самое близкое, что я получил к этому, было основано на Как иметь 2 разных админ-сайта в проекте Django? и связано с другим вопросом, который я задал: отдельные интерфейсы 'admin' для другого пользователятипы в django

Я закончил тем, что создал два отдельных экземпляра администратора django, и у каждого была своя собственная проверка, которая применялась к фильтрам на моделях и общим действиям CRUD.

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