在/ blog/index.html上的TemplateDoesNotExist

gam*_*ofe 2 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
Run Code Online (Sandbox Code Playgroud)

rxe/urls.py:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'$', include('blog.urls')), 
]
Run Code Online (Sandbox Code Playgroud)

blog/urls.py:

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.IndexView.as_view(), name = 'index'),
]
Run Code Online (Sandbox Code Playgroud)

blog/views.py:

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

class IndexView(TemplateView):
    template_name = 'blog/index.html'
Run Code Online (Sandbox Code Playgroud)

访问时localhost:8000/,错误:

TemplateDoesNotExist在/

博客/ index.html的

在它下面,在Template-loader postmortem中:

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',
        ],
    },
    },
]
Run Code Online (Sandbox Code Playgroud)

Sel*_*cuk 5

您必须将该blog应用程序添加到您的项目中,并将其添加到您的项目中INSTALLED_APPS:

INSTALLED_APPS = [...,
                  'blog']
Run Code Online (Sandbox Code Playgroud)

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