2016-09-15 89 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

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