2012-08-03 85 views
1

我想在Django项目中有2个独立的管理站点。在Django中有2个不同管理站点的问题

首先是默认的admin 和第二是 “courseManager的” 下面的代码,我用AdminSite

文件路径 “CMS /场/ admin.py”

from courses.models import * 
from django.contrib import admin 
from django.contrib.admin.sites import AdminSite 
from django.contrib.auth.models import User, Group 
from django.contrib.auth.admin import UserAdmin, GroupAdmin 

class CourseManager(AdminSite): 
    name = 'CourseManager' 

course_manager = CourseManager() 

class CityAdmin(admin.ModelAdmin): 
    list_display = ['__unicode__', 'status',] 
    list_filter = ['status',] 
    search_fields = ['title',] 

course_manager.register(City, CityAdmin) 

“CMS的帮助下加入/cms/urls.py”

from courses.admin import course_manager 
urlpatterns = patterns('',  
    url(r'^admin/', include(admin.site.urls)), 
    url(r'coursemanager/', include(course_manager.urls)), 
) 

但当我添加此http://domain.local/coursemanager/ & http://domain.local/admin/每年都nel正在工作,但在http://domain.local/coursemanger/列表注册城市模块但未显示添加或更改链接。事件我试图从URL访问链接,但不工作。我正在检查这是超级用户,我有所有模块访问。但是,当我改变像波纹管

“CMS/CMS/urls.py”

from courses.admin import course_manager 
urlpatterns = patterns('',  
    url(r'coursemanager/', include(course_manager.urls)), 
    url(r'^admin/', include(admin.site.urls)), 
) 

然后http://domain.local/coursemanager/正常工作和http://domain.local/admin面板只列出所有注册管理,但不显示添加/修改链接代码。

+0

您的'course_manager'不是'AdminSite'的实例。 – Rohan 2012-08-03 10:46:35

+0

你可以检查它是否适用于'course_manager = AdminSite()'? – 2012-08-03 13:12:21

+0

直接访问添加/更改网址时会出现什么错误? – 2012-08-03 13:47:44

回答

1

AdminSite()app_name通过AdminSite.__init__()初始化。您不能通过提供类级变量来覆盖它,因此您遇到了实例名称空间冲突,然后出现一些reverse失败,here,导致未显示添加/更改链接。尝试

class CourseManager(AdminSite): 
    '...' 

course_manager = CourseManager(name='CourseManager') 

# or 
course_manager = AdminSite(name='CourseManager') 
+0

谢谢这是course_manager = CourseManager(name =“coursemanager”)为我工作。 – 2012-08-06 04:53:37