Django:无法在主页上正确显示TemplateDoesNotExist /

时间:2013-01-08 23:35:50

标签: django django-templates django-views

我正在开发一个新的Django项目,并且很难让index.html页面正确显示。有关改变什么以使其正确显示的任何建议吗?

我收到了错误

TemplateDoesNotExist at /

index.html

我的每个文件的设置如下。

myprojectname / myprojectname / settings.py

import os
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'templates/static')
TEMPLATE_DIRS = (
    PROJECT_ROOT + '../templates'
)

myprojectname / myprojectname / urls.py

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^', 'apps.views.index'),
    url(r'^admin/', include(admin.site.urls)),
)

myprojectname /应用/ views.py     来自django.shortcuts导入render_to_response

def index(request):
    return render_to_response('index.html', locals())

我也是Django的新手,所以不要讨厌! :)我很乐意承认我是个菜鸟......

2 个答案:

答案 0 :(得分:1)

设置模板目录:

PROJECT_DIR = os.path.dirname(__file__)
TEMPLATE_DIRS = (
    os.path.join(PROJECT_DIR, 'templates'),
)

您的文件夹结构应类似于:

project_name/
    project_name/
        settings.py
        templates/
            index.html

文件夹结构尤为重要!

如果您还没有定义模板加载器:

TEMPLATE_LOADERS = (
    ('django.template.loaders.cached.Loader', (
        'django.template.loaders.filesystem.Loader',
        'django.template.loaders.app_directories.Loader',
    )),
)

我已经使用cached.Loader包装了标准加载器,这有趣的只是缓存预编译的模板。

此外,当我在这里时,修复您的根URL:

urlpatterns = patterns('',
    url(r'^$', 'apps.views.index'),

请注意额外的$终止正则表达式的结尾,否则第一个网址将匹配每个网址,其他网址都不会有机会匹配。

答案 1 :(得分:0)

试试这个..

TEMPLATE_DIRS = (
    PROJECT_ROOT + '../templates/'/
)