Павел Тявин
Павел Тявин

Reputation: 2659

grappelli dashboard ValueError on two admin sites

I want use two admin sites for my project. Each with grappelli dashboard. I've executed this commands:

python manage.py customdashboard dashboard.py
python manage.py customdashboard dashboard.py

twice (once in project/project and second time in project/app)

#file system

project
  project
    dashboard.py
    urls.py
  app
    dashboard.py
    admin.py

#settings.py

GRAPPELLI_INDEX_DASHBOARD = {
    'django.contrib.admin.site': 'project.dashboard.CustomIndexDashboard',
    'app.admin.operator_site': 'app.dashboard.CustomIndexDashboard',
}

#urls.py

from django.conf.urls import patterns, url, include
from django.contrib import admin
from app.admin import admin_site
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^myadmin/', include(operator_site.urls)),
    url(r'^grappelli/', include('grappelli.urls')),
)

#app/admin.py

from django.contrib.admin import AdminSite

class MyAdminSite(AdminSite):
    pass

admin_site = MyAdminSite()

The problem is when I go to /admin/ everything is ok, but when I go to /myadmin/ , I've got ValueError

Dashboard matching "{'app.admin.operator_site': 'app.dashboard.CustomIndexDashboard', 'django.contrib.admin.site': 'project.dashboard.CustomIndexDashboard'}" not found

full error trace: http://pastebin.com/w8W2eRPd

Where is the problem?

Upvotes: 0

Views: 274

Answers (1)

Павел Тявин
Павел Тявин

Reputation: 2659

Ok, i've found it out. When making a subclass of a AdminSite on make an instance

admin_site = MyAdminSite()

you should use a custom name parameter (not 'admin'):

admin_site = MyAdminSite(name='myadmin')

Upvotes: 1

Related Questions