2016-12-06 179 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自動添加。也許在未來的版本中。 –