0

プロジェクトに 2 つの管理サイトを使用したいと考えています。それぞれグラッペリダッシュボード付き。このコマンドを実行しました:

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

2 回 (プロジェクト/プロジェクトで 1 回、プロジェクト/アプリで 2 回目)

#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()

問題は、 /admin/ に移動するとすべて問題ないのですが、 /myadmin/ に移動すると ValueError が発生することです

「{'app.admin.operator_site': 'app.dashboard.CustomIndexDashboard', 'django.contrib.admin.site': 'project.dashboard.CustomIndexDashboard'}」に一致するダッシュボードが見つかりません

完全なエラー トレース: http://pastebin.com/w8W2eRPd

問題はどこだ?

4

1 に答える 1

1

わかりました、私はそれを見つけました。インスタンスの作成時に AdminSite のサブクラスを作成する場合

admin_site = MyAdminSite()

カスタムnameパラメータを使用する必要があります (「admin」ではありません):

admin_site = MyAdminSite(name='myadmin')
于 2013-02-26T20:06:10.873 に答える