2011-06-16 114 views
0

正在安裝django-admin-tools模塊以增強具有自定義儀表板和菜單的默認django管理員。我已經閱讀docs像一個bazillion時間幫助,Django的管理員工具不會工作!

建立一切的方式文檔說,但我仍然只是看到Django管理員同樣的方式是在即使我的django管理工具之前。

什麼可能是錯的?

正在運行的Django 1.3,並使用了OpenSuse 11.3

如果有幫助,在我的settings.py應用程序的順序是這樣的:

INSTALLED_APPS = (
    'admin_tools', 
    'django.contrib.admin', 
    'admin_tools.theming', 
    'admin_tools.menu', 
    'admin_tools.dashboard', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    #'grappelli', #for a sweet django admin look 
    # 'django.contrib.admindocs', 
    'django_extensions', 
    'fpui', #the footprint front-end ui app 
) 

更多我的settings.py的部件與本問題:

ROOTDIR = os.path.abspath(os.path.dirname(__file__)) 

ADMIN_TOOLS_MEDIA_URL = ROOTDIR + '/media/admin_tools/' 

MEDIA_ROOT = ROOTDIR + '/media/admin_tools/' 

ADMIN_TOOLS_THEMING_CSS = 'css/theming.css' 

MEDIA_URL = '/media/' 

ADMIN_MEDIA_PREFIX = '/static/admin/' 

ADMIN_TOOLS_INDEX_DASHBOARD = 'footprint.dashboard.CustomIndexDashboard' 
ADMIN_TOOLS_APP_INDEX_DASHBOARD = 'footprint.dashboard.CustomAppIndexDashboard' 
ADMIN_TOOLS_MENU = 'footprint.menu.CustomMenu' 

STATIC_ROOT = ROOTDIR + '/fpui/static/' 


STATIC_URL = '/static/' 

# Additional locations of static files 
STATICFILES_DIRS = (
) 

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    'django.contrib.staticfiles.finders.DefaultStorageFinder', 
) 

回答

1

查看您的INSTALLED_APPS的順序;如果將django.contrib.admin放在django-admin-tools下面,可能會有所幫助,這裏的命令用於選擇正確的/ templates/admin目錄。

+1

事實上,使用['TEMPLATE_LOADERS'](https://docs.djangoproject.com/en/dev/ref/settings/#std:「)中的''django.template.loaders.app_directories.Loader'設置-TEMPLATE_LOADERS)設置以'INSTALLED_APPS'設置指定的順序在app目錄中執行查找。 – 2011-06-16 19:11:33

+0

謝謝@fijter,但即使按照你說的做,仍然沒有任何變化!我已經從我的settings.py中添加了示例以闡明更多... – nemesisfixx 2011-06-16 21:43:26

3

有同樣的問題,並最終設法使其工作。 我認爲你的INSTALLED_APPS的訂購是正確的 - admin_tools應該在django.contrib.admin之前。要絕對確定將django.contrib.admin推到其他admin_tools應用程序下方。 該問題可能在其他配置的某處;我的是admin_tools無法訪問我的模板,而是運行常規管理員。

嘗試以下:

ROOTDIR = os.path.realpath(os.path.dirname(__file__)) 
MEDIA_ROOT = os.path.join(ROOTDIR,'media') 
MEDIA_URL = '/media/' 
STATIC_ROOT = os.path.join(PROJECT_ROOT,'media/static') 
STATIC_URL = '/static/' 
ADMIN_MEDIA_PREFIX = '/static/admin/' 

STATICFILES_DIRS = (
) 

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    'django.contrib.staticfiles.finders.DefaultStorageFinder', 
) 

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
) 

ROOT_URLCONF = 'your_project_name.urls' 

TEMPLATE_DIRS = (
    os.path.join(PROJECT_ROOT, 'templates'), 
) 

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
) 

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.core.context_processors.auth', 
    'django.core.context_processors.debug', 
    'django.core.context_processors.i18n', 
    'django.core.context_processors.media', 
    'django.contrib.messages.context_processors.messages', 
    'django.core.context_processors.request', 
) 

INSTALLED_APPS = (
    'admin_tools', 
    'admin_tools.theming', 
    'admin_tools.menu', 
    'admin_tools.dashboard', 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    #'grappelli', #for a sweet django admin look 
    # 'django.contrib.admindocs', 
    'django_extensions', 
    'fpui', #the footprint front-end ui app 
) 

請注意,我用realpathROOTDIR所以如果有任何符號鏈接可以得到解決。將 your_project_name替換爲ROOT_URLCONF中的項目名稱。 其他參數如ADMIN_TOOLS_INDEX_DASHBOARD,ADMIN_TOOLS_APP_INDEX_DASHBOARDADMIN_TOOLS_APP_INDEX_DASHBOARD是可選的,現在刪除它們,這樣它們不會影響默認配置。

當然還要確保您的urls.py配置爲在admin_tools指南中。

好運

+0

再次查看您的代碼:您沒有定義PROJECT_ROOT,是嗎?你可以使用: **編輯:**只是爲了完全:您可以使用: 'PROJECT_ROOT = os.path.abspath(os.path.join(ROOTDIR,os.path.pardir))' – 2012-05-28 07:33:33

0

有點晚,但我有同樣的問題,這竟然是由下列情況造成的:安裝管理工具我已經覆蓋的管理模板的人之前(基地現場.html)將修改後的版本放入my_project/templates/admin中。所以它總是使用這個模板而不是admin_tools。刪除自定義模板後,它工作。