当文件存在且权限正确时,TemplateDoesNotExist

时间:2012-03-13 17:37:49

标签: django html5 django-templates

我正在尝试从模板扩展,并且我不断收到相同的 TemplateDoesNotExist 错误。所有其他页面,不扩展基本模板工作(他们只有一些虚拟的HTML)

我做了一个ls -l,文件存在,所有权限都是完美的:

-rw-r--r-- 1 atrus users 1625 Mar 13 13:05 base.html
drwxr-xr-x 2 atrus users 4096 Mar 13 10:50 css
drwxr-xr-x 2 atrus users 4096 Mar 13 10:51 img
-rw-r--r-- 1 atrus users  136 Mar 13 13:14 index.html
-rw-r--r-- 1 atrus users  407 Mar 12 12:16 login.html
-rw-r--r-- 1 atrus users  662 Mar 12 03:21 register.html
-rw-r--r-- 1 atrus users   59 Mar 12 02:41 temp.html

因此,这不是权限问题,而是文件(base.html存在)

我认为我正在调用(索引)只是:

def index(request):
    return render_to_response('menu/index.html')

我的index.html如下:

{% extends 'base.html' %}

{% block title %}Home{% endblock title %}

{% block content %}
<p>here be content <p>
{% endblock content %}

错误发生在第一行。

我的TEMPLATE_DIRS的settings.py是:

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    '/home/atrus/Dropbox/workspace/menu/menu/templates'
)

2 个答案:

答案 0 :(得分:1)

看起来你的模板文件夹中没有menu目录(假设你在ls的位置)。您是否尝试过return render_to_response('index.html')

此外,正如我的评论中所述,您的TEMPLATE_DIRS是否是正确的文件路径?我不确定你是否意外地复制了“菜单”

答案 1 :(得分:1)

当您遗漏评论时,您的TEMPLATE_DIRS设置就是这样:

TEMPLATE_DIRS = ('/home/atrus/Dropbox/workspace/menu/menu/templates')

实际上是单个字符串,而不是元组。你需要一个逗号:

TEMPLATE_DIRS = ('/home/atrus/Dropbox/workspace/menu/menu/templates',)