2016-09-15 85 views
0

是否可以設置django項目模板加載優先級,以便首先加載應用程序的「模板」文件夾,然後加載項目「模板」。如果模板存在於應用程序文件夾中,則使用它。如果它不存在於app文件夾中,則嘗試從項目文件夾加載。Django項目模板加載器設置

或者這是不正常的方式來加載模板? 我問,因爲我除了看到,Django的嘗試加載首先全局模板:

模板裝載機拋屍

的Django試圖加載這些模板,按以下順序:

利用發動機的Django:

  • django.template.loaders.filesystem.Loader:d:\ MyProjects下\ MY-網站的\ src \ TEMP lates \ home.html(來源不存在)

  • django.template.loaders.app_directories.Loader:C:\ User \ Python27 \ lib \ site-packages \ django \ contrib \ admin \ templates \ home.html (來源不存在)

  • django.template.loaders.app_directories.Loader:C:\ User \ Python27 \ lib \ site-packages \ django \ contrib \ auth \ templates \ home.html(Source does not exist)
  • django.template.loaders.app_directories.Loader:d:\ MyProjects下\ MY-網站的\ src \網站\模板\ home.html的(源不存在)

回答

2

更新您的TEMPLATES設置,並將app_directories加載程序放在filesystem加載程序之前。

如果您當前有'APP_DIRS': True,您必須將其刪除,並添加loaders選項。

例如,你可以改變你的TEMPLATES設置:

TEMPLATES = [{ 
    'BACKEND': 'django.template.backends.django.DjangoTemplates', 
    'DIRS': [os.path.join(BASE_DIR, 'templates')], 
    'OPTIONS': { 
     'loaders': [ 
      'django.template.loaders.app_directories.Loader', 
      'django.template.loaders.filesystem.Loader', 
     ], 
    }, 
}] 
+0

感謝您的快速和有用的答案! –