在/ blog / index.html上的TemplateDoesNotExist

时间:2016-03-17 01:19:14

标签: python django

我正在尝试使用Django 1.9.x创建自己的项目,但我无法使/的索引页面正常工作。

这是我的文件夹结构:

rxe/
    urls.py
    wsgi.py
    settings.py
blog/
    migrations/
    static/
        blog/
            css/
            js/
            img/
    templates/
        blog/
           index.html
    admin.py
    models.py
    tests.py
    urls.py
    views.py
manage.py

rxe/urls.py

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

blog/urls.py

from django.conf.urls import url

from . import views

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

blog/views.py

from django.http import HttpResponse, HttpResponseRedirect
from django.views.generic import TemplateView

class IndexView(TemplateView):
    template_name = 'blog/index.html'

访问localhost:8000/时,错误:

  

TemplateDoesNotExist位于/​​

     

博客/ index.html中

就在它下面,在模板加载器事后

  

django.template.loaders.app_directories.Loader:/usr/local/lib/python2.7/dist-packages/Django-1.9.4-py2.7.egg/django/contrib/admin/templates/blog/ index.html(来源不存在)

     

django.template.loaders.app_directories.Loader:/usr/local/lib/python2.7/dist-packages/Django-1.9.4-py2.7.egg/django/contrib/auth/templates/blog/ index.html(来源不存在)

如果我返回一个HttpResponse('Hello'),就像在教程中一样,但是同样的教程没有/路径的任何视图,我希望在那里有一个。

修改

rxe/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',
        ],
    },
    },
]

1 个答案:

答案 0 :(得分:5)

您必须将blog应用添加到项目中,方法是将其添加到INSTALLED_APPS设置中:

INSTALLED_APPS = [...,
                  'blog']

否则模板加载器将不会处理blog目录,因为它不被视为应用程序。