ken*_*der 19 django django-admin
我想在Django项目中有2个独立的管理站点.
我的意思是分开 - 他们应该有单独的用户身份验证,他们应该管理不同的模型,并具有不同的外观和URL.
我想要这样做的原因是客户需要单独的部分来管理页面的CMS部分,并分开用作"后台"解决方案.
我想在我的项目树中复制od django.contrib.auth appliaction,以不同方式命名admin.site.register()
并对它们使用单独的调用.这样我可以在其中每个模型中提供其他模型,不同的外观等.我不知道如何解决用户身份验证问题(我应该有不同的用户才能登录CMS然后进入BackOffice) .
有人碰巧这样做过,可以给我一些提示吗?或者我打算做的是设计错误?
Ber*_*ant 41
您可以将Django子类化AdminSite
(例如,将其放入admin.py
项目根目录中):
from django.contrib.admin.sites import AdminSite
class MyAdminSite(AdminSite):
pass
#or overwrite some methods for different functionality
myadmin = MyAdminSite(name="myadmin")
Run Code Online (Sandbox Code Playgroud)
至少从1.9开始,您需要添加name参数以使其正常工作.这用于创建反向URL,因此名称必须是urls.py中的名称.
然后,您可以在应用程序中使用它,admin.py
就像使用普通AdminSite
实例一样:
from myproject.admin import myadmin
myadmin.register(MyModel_A)
Run Code Online (Sandbox Code Playgroud)
您还需要为它定义一些URL(在您的项目中urls.py
):
from myproject.admin import admin, user_site
from myproject.admin import myadmin
urlpatterns = patterns('',
...
(r'^admin/', include(admin.site.urls)),
(r'^myadmin/', include(myadmin.urls)),
Run Code Online (Sandbox Code Playgroud)
另见:http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adminsite-objects
归档时间: |
|
查看次数: |
12722 次 |
最近记录: |