отдельные интерфейсы администратора для разных типов пользователей в django

Недавно я пытался создать проект, в котором участвуют несколько уровней пользователей.

(Просто пример сокращенной и грубой схемы)

  • ME (Super User)
    • Client(s)
      • Customer(s)
      • Survey Collections
        • SurveyUser(s)
          • Invitee(s)
        • Surveys
          • Invitee(s) (invitee is a child of both survey and user)
        • Вопросы
        • И т.д

Я бы в идеале:

  • www.example.com/client/ перейдите к интерфейсу клиента, для доступа к которому вы должны были быть клиентом
  • www.example.com/customer/ перейдите в клиентский интерфейс, для доступа к которому вы должны были быть клиентом

Я уже установил, что использование индивидуального административного интерфейса Django для всех из них, вероятно, невозможно (или возможно?). Поэтому я склоняюсь к ручному созданию интерфейсов администратора для каждого уровня пользователя, позволяя им управлять своими ролями. Каков наилучший способ иметь разные типы пользователей и отдельные интерфейсы для каждого из них?

Мне нравится способ наследования пользователей, описанный здесь: http://scottbarnham.com/blog/2008/08/21/extending-the-django-user-model-with-inheritance/

Но я не уверен, как настроить разные области «администрирования» для разных пользователей.

В качестве связанной с этим побочной проблемы я также не уверен, как получить доступ к пользовательским свойствам наряду со стандартными свойствами пользователя и как редактировать/сохранять их в АКТУАЛЬНОМ интерфейсе администратора, который я буду использовать.

Мне нужно будет аутентифицировать пользователей «Клиент» в клиентской базе данных, чтобы проверить, являются ли они клиентами, но каким-то образом также аутентифицировать в пользовательской базе данных, которая управляет аутентификацией, именем пользователя, паролем и т. д.

Я перехожу с PHP на Python/Django, поэтому любой совет очень ценен, чтобы помочь мне в этом.

Спасибо!


person Pete Hamilton    schedule 15.03.2011    source источник
comment
stackoverflow.com/questions/3206856/   -  person Bernhard Vallant    schedule 15.03.2011
comment
Спасибо, совершенно не заметил вашего ответа! С тех пор я перешел на ruby ​​on rails, который работает намного лучше для моего способа разработки, но я все еще надеюсь, что люди сочтут вашу ссылку полезной, похоже, решают аналогичную проблему :)   -  person Pete Hamilton    schedule 03.05.2011


Ответы (1)


Ближе всего к этому я подошел к другой статье stackoverflow здесь: -project">Как иметь 2 разных сайта администрирования в проекте Django?

В итоге я создал два совершенно отдельных экземпляра django.contrib.admin.sites.AdminSite, которые в итоге заработали, хотя и не идеально.

person Pete Hamilton    schedule 09.05.2011