Django项目模板加载器设置
问题描述:
是否可以设置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的(源不存在)
答
更新您的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',
],
},
}]
感谢您的快速和有用的答案! –