2017-05-15 53 views
0

我的admin/base_site.html不會加載或被django的admin/base_site.html覆蓋。請讓我知道我錯過了(我最近開始)Django admin/site_base.html覆蓋我的admin/site_base.html

我有我的模板在

BASE_DIR /模板/管理/ base_site.html

在設置

TEMPLATES = [ 
    { 
     "BACKEND": "django.template.backends.django.DjangoTemplates", 
     "DIRS": [ 
      os.path.join(BASE_DIR, "templates"), 
     ], 
     "APP_DIRS": True, 
     "OPTIONS": { 
      'debug': True, 
      "context_processors": [ 
       "django.contrib.auth.context_processors.auth", 
       "django.template.context_processors.debug", 
       "django.template.context_processors.i18n", 
       "django.template.context_processors.media", 
       "django.template.context_processors.static", 
       "django.template.context_processors.tz", 
       "django.template.context_processors.request", 
       "django.contrib.messages.context_processors.messages", 
       "account.context_processors.account", 
       "pinax_theme_bootstrap.context_processors.theme", 
      ], 
     }, 
    }, 
] 

編輯:我在我的問題中犯了一個錯誤,我的模板實際上是在

PROJECT_ROOT /模板/管理/ base_site.html

其中PROJECT_ROOT是manage.py的目錄。

回答

0

確保您的應用程序在你的Django settings.py

事實上的INSTALLED_APPSdjango.contrib.admin之前聲明,Django的模板加載器將在INSTALLED_APPS穿行的應用程序,並搶了先匹配模板作爲docs描述下。

INSTALLED_APPS的順序很重要!例如,如果您希望 自定義Django管理員,則可以選擇使用myproject.polls中的admin/base_site.html從django.contrib.admin, 覆蓋標準admin/base_site.html模板 。 然後您必須 確保您的myproject.polls位於INSTALLED_APPS的django.contrib.admin 之前,否則django.contrib.admin將首先加載 ,您的設置將被忽略。

+0

看起來像這樣的情況如果我把我的模板放在「myproject/polls/templates/admin」下,但如果我將模板保留在「myproject/templates/admin」?不應該也加載和覆蓋之前加載的任何東西? – Davit

+0

它的確應該是因爲根據文檔,第一個默認的加載器是'django.template.loaders.filesystem.Loader',它使用'DIRS'。創建了BASE_DIR/templates目錄後,你重新啓動了服務器嗎?嘗試從該目錄加載一個模板,與其他模塊沒有名稱衝突,以檢查服務器是否真的在該目錄中尋找模板...希望它有幫助。 –

0

解決的辦法是改變DIRS到

"DIRS": [ 
     os.path.join(BASE_DIR, "templates"), 
     os.path.join(PROJECT_ROOT, "templates"), 
    ], 

的問題是在設置。

"DIRS": [ 
     os.path.join(BASE_DIR, "templates"), 
    ], 

這裏BASE_DIR是主要的應用程序的目錄中,因此DIRS包括的mysite/mysite的/模板

有我question.I錯誤思想BASE_DIR是目錄我的項目因此我的模板是

BASE_DIR/templates/admin/base_site.html

,但實際上它是在

PROJECT_ROOT /模板/管理(其中管理。py是)