我已经实现了两个管理面板。一个用于超级用户,另一个用于卖家管理员。我可以通过Django的内置组和权限模块来分离逻辑,但我需要为这两个不同的管理面板提供不同的措辞和自定义设计。下面是我的两个管理面板的结构。
- 这是django的常用方式
urls.py
url(r'^admin/', admin.site.urls),
管理员.py
admin.site.register(modelname)
所以,管理面板的逻辑是完全好的。问题是将卖家和管理员彼此分开。所以,我用这个创建了不同的卖家面板,
admin.py
自定义管理面板
from django.contrib.admin.sites import AdminSite class MyAdminSite(AdminSite): pass myadmin = MyAdminSite(name="myadmin") myadmin.register(User)
urls.py
url(r'^seller-panel/', include(myadmin.urls))
因此,在这里,我们有两个不同的管理面板的两个不同url。通过这个,我实现了不同的管理外观和网址。主要问题是区分这两个管理面板之间的登录。唯一的问题是
"管理员可以登录卖家管理面板,卖家可以登录超级用户管理面板">
我们可以通过两次自定义管理员登录来实现这个逻辑吗?或者组和权限通过is_staff选项是唯一的方法?
由于您的基本目标是为seller
类型的用户重用管理视图和逻辑,并且您可能想要为这些用户提供更多的自定义视图和功能,因此我建议采用不同的方法。
与其让两种不同的管理类型具有不同的登录页面,不如像往常一样让seller
用户成为在标准视图中具有登录和相应页面的常规用户。在那里(在网站的非管理部分),你可能想重用一些管理逻辑和模板。