Python 如何在Django中为两个不同的管理面板分离身份验证逻辑?
我已经实现了两个管理面板。一个是超级用户,另一个是卖家管理员。我可以通过Django的内置组和权限模块分离逻辑,但我需要两个不同的管理面板使用不同的措辞和自定义设计。下面是我的2个管理面板的结构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
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(r'^seller-panel/', include(myadmin.urls))
所以,在这里,我们有两个不同的网址为两个不同的管理面板。通过这一点,我实现了不同的管理外观和网址。主要问题是区分这两个管理面板之间的登录名。唯一的问题是
“管理员可以登录卖方管理面板,卖方可以登录
超级用户管理面板“
我们可以通过两个自定义管理员登录来实现这个逻辑吗?或者通过is_staff选项的组和权限是唯一的方法?由于您的基本目标是为
卖家
类型的用户重用管理视图和逻辑,并且您可能希望为这些用户提供更多自定义视图和功能,因此我建议采用不同的方法
与使用不同的登录页面创建两种不同的管理员类型不同,将
卖家
用户设置为常规用户,在标准视图中像往常一样使用登录和相应页面。在那里(在网站的非管理员部分),您可能希望重用一些管理逻辑和模板。您尝试过Grapelli定制仪表板吗?是的,通过使用grappelli或django,我们可以在没有第三方的情况下管理自定义仪表板,但两者都需要自定义身份验证。嗯,这是一个想法,但由于存在敏感数据,我不能使用此结构。默认的管理员更改列表、操作等不能用于此。