2016-12-06 132 views
0

操作系统:Windows 10,Django的:1.10.4,巨蟒:3.5.2Django模板加载器无法从文件系统加载模板。 TemplateDoesNotExist

enter image description here

在上图中的 django.template.loaders.filesystem.Loader应列出,但没有列出。

这是否意味着它没有查看应用程序目录?

我settings.py(模板部分)

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

从settings.py

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
] 

我的应用程序的目录结构安装的应用部分:

  • FOO
    • FO Ø
      • ...
      • urls.py
    • app_bar
      • ...
      • urls.py
    • db.sqlite3
    • 管理。 py

富/ urls.py

urlpatterns = [ 
    url(r'', include('app_bar.urls')), 
    url(r'^admin/', admin.site.urls), 
] 

app_bar/urls.py

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
] 

如果需要,我可以提供更多的信息。

P.S.我想从我安装的应用程序中加载模板。我得到TemplateDoesNotExist错误。

+0

也许你把东西放进'DIRS'? –

回答

0

在上图中django.template.loaders.filesystem.Loader应该列出,但它没有列出。只有当DIRS选项在TEMPLATES设置设为

filesystem.loader工作。并且,在您的设置中DIRS被设置为空列表。

由于APP_DIRS设置为True,它正试图寻找在INSTALLED_APPS在这种情况下django.contrib.admin提到的应用程序模板。您正在收到错误,因为该目录中不存在该模板。

您需要检查您在django项目中的某个应用中使用的模板。如果是的话,请将其纳入INSTALLED_APPS

+0

我按照Django教程https://docs.djangoproject.com/en/1.10/intro/tutorial01/ 所以这里有一次我做了“python manage.py startapp app_bar”。它应该在“INSTALLED_APPS”部分进行了输入,但它没有。我想这是主要问题。我对么? –

+0

如果您的模板包含在'app_bar'应用程序中,请在'INSTALLED_APPS'结尾包含该模板。如果模板位于django项目目录中,那么也包含它。 – AKS

+0

我在INSTALLED_APPS部分添加了app_bar条目,它工作。我相信它应该由Django自动添加。也许在未来的版本中。 –