Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django中为两个不同的管理面板分离身份验证逻辑?_Python_Django_Django Views_Django Admin - Fatal编程技术网

Python 如何在Django中为两个不同的管理面板分离身份验证逻辑?

Python 如何在Django中为两个不同的管理面板分离身份验证逻辑?,python,django,django-views,django-admin,Python,Django,Django Views,Django Admin,我已经实现了两个管理面板。一个是超级用户,另一个是卖家管理员。我可以通过Django的内置组和权限模块分离逻辑,但我需要两个不同的管理面板使用不同的措辞和自定义设计。下面是我的2个管理面板的结构 这是django的惯常方式 url.py url(r'^admin/', admin.site.urls), 管理员 admin.site.register(modelname) 所以,管理面板的逻辑是完全好的。问题是将卖家和管理员彼此分开。所以,我用这个创建了不同的卖方面板 管理员 admin.s

我已经实现了两个管理面板。一个是超级用户,另一个是卖家管理员。我可以通过Django的内置组和权限模块分离逻辑,但我需要两个不同的管理面板使用不同的措辞和自定义设计。下面是我的2个管理面板的结构

  • 这是django的惯常方式
  • url.py

    url(r'^admin/', admin.site.urls),
    
    管理员

    admin.site.register(modelname)
    
    所以,管理面板的逻辑是完全好的。问题是将卖家和管理员彼此分开。所以,我用这个创建了不同的卖方面板

  • 管理员

    admin.site.register(modelname)
    
    自定义管理面板

    from django.contrib.admin.sites import AdminSite
    class MyAdminSite(AdminSite):
        pass
    myadmin = MyAdminSite(name="myadmin")
    myadmin.register(User)
    
  • url.py

    url(r'^seller-panel/', include(myadmin.urls))
    
    所以,在这里,我们有两个不同的网址为两个不同的管理面板。通过这一点,我实现了不同的管理外观和网址。主要问题是区分这两个管理面板之间的登录名。唯一的问题是

    “管理员可以登录卖方管理面板,卖方可以登录 超级用户管理面板“


    我们可以通过两个自定义管理员登录来实现这个逻辑吗?或者通过is_staff选项的组和权限是唯一的方法?

    由于您的基本目标是为
    卖家
    类型的用户重用管理视图和逻辑,并且您可能希望为这些用户提供更多自定义视图和功能,因此我建议采用不同的方法


    与使用不同的登录页面创建两种不同的管理员类型不同,将
    卖家
    用户设置为常规用户,在标准视图中像往常一样使用登录和相应页面。在那里(在网站的非管理员部分),您可能希望重用一些管理逻辑和模板。

    您尝试过Grapelli定制仪表板吗?是的,通过使用grappelli或django,我们可以在没有第三方的情况下管理自定义仪表板,但两者都需要自定义身份验证。嗯,这是一个想法,但由于存在敏感数据,我不能使用此结构。默认的管理员更改列表、操作等不能用于此。