如何在django中实现多级管理?

时间:2018-05-14 08:12:23

标签: python django

我需要为整个项目使用superadmin_A,superadmin_A可以为项目创建superadmin_A和admin_A。

Superadmin_A可以创建公司Q,并可以为公司Q创建superadmin_B。

Superadmin_B可以为公司Q

创建admin_B和superadmin_B级别

现在admin_B和Super Admin_B只能为分配给他的公司登录,并且可以创建/编辑公司的文章,会员等。

我在django 2中这样做。

  • Superadmin_A - 可以为网站创建admin_A和superadmin_A
  • Admin_A - 只能创建公司
  • Superadmin_A - 可为公司Q创建公司Q superadmin_B
  • Superadmin_B - 可以创建Admin_B和其他公司详细信息 - 例如文章,会员等。
  • Admin_B - 可以创建comapny Q的deatils例如。文章,会员等。

管理级别 -

  • A - 网站/项目管理员
  • B - 管理员为comapny

层次

  • Superadmin_A
  • Admin_A
  • SuperAdmin_B
  • admin_B

任何人都可以指导我如何实现这一点。任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以为不同的AdminSites注册模型。如下所示

from django.contrib.admin.sites import AdminSite

class FirstAdminSite(AdminSite):
    pass
    #or overwrite some methods for different functionality

firstadmin = FirstAdminSite(name="firstadmin") 

然后,您可以在firstadmin中注册后使用此urls.py

from project_name.admin import admin, user_site
from project_name.admin import firstadmin
urlpatterns = patterns('',
    ...
    (r'^admin/', include(admin.site.urls)),
    (r'^firstadmin/', include(firstadmin.urls)),

在django docs中,https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#adminsite-objects - 您可以看到许多可以自定义的管理对象。