2015-11-06 154 views
0

TemplateDoesNotExist提高,但事后说,找到一个模板:Django不找模板,但它的存在,它甚至承认它

Template-loader postmortem 

Django tried loading these templates, in this order: 
Using loader django.template.loaders.filesystem.Loader: 
Using loader django.template.loaders.app_directories.Loader: 
/blah-blah/venv2.7/local/lib/python2.7/site-packages/django/contrib/admin/templates/shopify_app/login.html (File does not exist) 
/blah-blah/venv2.7/local/lib/python2.7/site-packages/django/contrib/auth/templates/shopify_app/login.html (File does not exist) 
/blah-blah/venv2.7/local/lib/python2.7/site-packages/tinymce/templates/shopify_app/login.html (File does not exist) 
/blah-blah/venv2.7/local/lib/python2.7/site-packages/django_tables2/templates/shopify_app/login.html (File does not exist) 
/blah-blah/venv2.7/local/lib/python2.7/site-packages/crispy_forms/templates/shopify_app/login.html (File does not exist) 
/blah-blah/ppmsys/shopify_app/templates/shopify_app/login.html (File exists) 
/blah-blah/ppmsys/campaigns/templates/shopify_app/login.html (File does not exist) 
/blah-blah/venv2.7/local/lib/python2.7/site-packages/django_extensions/templates/shopify_app/login.html (File does not exist) 

文件可读。

» ls -l ppmsys/shopify_app/templates/shopify_app/login.html 
-rw-rw-r-- 1 user1 user1 749 Nov 6 11:55 ppmsys/shopify_app/templates/shopify_app/login.html 

为什么TemplateDoesNotExist会上升?关于下一步尝试的任何想法?

这是我设置的相关部分:

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.webdesign', # for {% lorem %} 

    # Added by me 
    'storages', 
    'phonenumber_field', # for PhoneNumberField 
    'tinymce', # from django-tinymce, for HTMLField 
    'django_tables2', # from django-tables2 
    'crispy_forms', # from django-crispy-forms 
    'shopify_app', # taken from https://github.com/Shopify/shopify_django_app 

    # My applications 
    'mockups', 
    'campaigns', 
] 

... 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [ 
     ], 
     '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', 
       'django.core.context_processors.request', 
      ], 
      'loaders': [ 
       'django.template.loaders.filesystem.Loader', 
       'django.template.loaders.app_directories.Loader', 
      ] 
     }, 
    }, 
] 
+0

Django的什么版本?请发布您的settings.py –

+0

版本1.8.5。我的设置很大,我将添加相关部分 – dangonfast

回答

3

好吧,我发现它。这很愚蠢,但我会把它留在这里以供其他人参考。

该模板来自我正在重复使用的应用程序。我已经看到它有:

{% extends "base.html" %} 
{% block content %} 
... 
{% endblock %} 

base.html不存在任何地方。

好。我没有基础模板,我应该受到惩罚。但是不会出现TemplateDoesNotExist错误的调试消息。

它具体说shopify_app/login.html不存在,但不存在的是base.html。这是误导imho。我花了一个小时调整了我的设置,让django找到我知道的模板!

+0

感谢您发布您的解决方案。我无法在Django 1.8.5中重现该问题(我尝试使用Python 2.7和3.5)。在这两种情况下,它都说“base.html”不存在,并突出显示“{%extends”base.html“%}”来显示错误的位置。 – Alasdair

0
from os.path import join, normpath 

然后

'DIRS': [ 
      normpath(join(BASE_DIR, 'templates')), 
     ], 
     'APP_DIRS': True, 
+0

'ImproperlyConfigured在/登录/:当装载机是defined.' – dangonfast

+0

尝试放弃装载机 '装载机' 行app_dirs不能设置:[ 'django.template.loaders.filesystem.Loader', “的Django .template.loaders.app_directories.Loader', ] –

+1

问题与此无关。我在下面发布了一个答案 – dangonfast

相关问题