在django中为不同的用户类型分开'admin'接口

时间:2011-03-15 20:30:38

标签: django django-models django-admin django-users django-inheritance

我最近正在尝试创建一个涉及多个级别用户的项目。

(只是缩略和粗略架构的一个例子)

  • ME(超级用户)
    • 客户端(S)
      • 客户(S)
      • 调查收集
        • SurveyUser (S)
          • 受邀者(S)
        • 调查
          • 受邀者(s)(被邀请者是调查和用户的子女)
        • 问题

我理想的是:

  • www.example.com/client/转到您必须是访问客户端的客户端界面
  • www.example.com/customer/转到您必须是客户才能访问的客户界面

我已经确定使用自定义的Django管理界面可能不可能(或者是吗?)。因此,我倾向于为每个级别的用户手动创建“管理”界面,允许他们管理各自的角色。为每个用户提供不同用户类型和单独接口的最佳方法是什么?

我喜欢继承用户的方式: http://scottbarnham.com/blog/2008/08/21/extending-the-django-user-model-with-inheritance/

但我不确定如何为不同的用户设置不同的“管理员”区域。

作为一个相关的副问题,我也不确定如何在标准用户属性旁边访问自定义属性,以及如何在我将使用的ACTUAL管理界面中编辑/保存它们。

我需要针对客户端数据库对“客户端”用户进行身份验证,以检查它们是否为客户端,但也会以某种方式对管理身份验证,用户名,密码等的用户数据库进行身份验证。

我正在从PHP切换到Python / Django所以任何建议都非常感谢帮助我。

谢谢!

1 个答案:

答案 0 :(得分:2)

我最接近这个是基于另一个stackoverflow文章:How to have 2 different admin sites in a Django project?

我最终创建了两个完全独立的django.contrib.admin.sites.AdminSite实例,它们似乎最终起作用,尽管并不理想。