Django项目模板加载器设置

时间:2016-09-15 11:53:47

标签: python django django-templates

是否可以设置django项目模板加载优先级,以便首先加载应用程序的“模板”文件夹,然后加载项目“模板”。如果模板存在于app文件夹中,则使用它。如果app文件夹中不存在,则尝试从项目文件夹加载。

或者加载模板不正常? 我问,因为我在异常中看到,Django试图加载所有全局模板:

  

模板加载器事后

     

Django尝试按以下顺序加载这些模板:

     

使用引擎django:

     
      
  • django.template.loaders.filesystem.Loader:D:\ myprojects \ my-website \ src \ templates \ 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 not exists)
  •   
  • django.template.loaders.app_directories.Loader:D:\ myprojects \ my-website \ src \ website \ templates \ home.html(来源不存在)
  •   

1 个答案:

答案 0 :(得分: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',
        ],
    },
}]