TemplateDoesNotExist在/

时间:2011-04-16 11:03:35

标签: django-templates

这是我的网站网址http://webtrick.heliohost.org/ 我的模板目录设置:

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__) , 'templates').replace('\\','/')
)

view.py

from django.http import HttpResponse
from django.template import Template , Context
from django.shortcuts import render_to_response
def index(request):
        return render_to_response('index.html')

url.py

from django.conf.urls.defaults import patterns, include, url
from webtrickster.views import index
urlpatterns = patterns('',
    url(r'^$', index)
)

我不知道这段代码有什么问题 任何帮助赞赏

13 个答案:

答案 0 :(得分:34)

确保您的Django应用程序位于settings.py中的INSTALLED_APPS中。这是我的问题。因此,如果您的民意调查应用程序文件夹中有模板文件夹,则需要在设置文件中的已安装应用程序末尾添加“民意调查”。

答案 1 :(得分:9)

将您的应用程序添加到INSTALLED_APPS的setting.py结尾,如下所示:

javac

你的模板目录应该像

一样神秘
INSTALLED_APPS = [
    ...
    'django.contrib.staticfiles',
    'mysite'                   
  ]

答案 2 :(得分:5)

 os.path.join(os.path.dirname(__file__) ,'../templates').replace('\\','/')

这对我有用。

答案 3 :(得分:4)

首先,您需要在django项目文件夹中创建一个名为“templates”的文件夹,然后,您可以通过两种方式添加模板目录,打开您的设置文件,然后添加以下任何代码

1)您可以通过

直接指定模板路径

TEMPLATE_DIRS = ( 'D:/Django/web/Kindset/templates' #your file path ,this is my template directory path )

2)或者如果你想使用通用路径意味着使用

TEMPLATE_DIRS = ( 'os.path.join(BASE_DIR, "templates"),' )

答案 4 :(得分:2)

我浪费了很多时间试图弄清楚我的'templates'目录出了什么问题,然后弄清楚了:

您可能已经忘记在TEMPLATE_DIR的以下段中添加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',
            ],
        },
    },
]

因此它应该有'DIRS': [TEMPLATE_DIR,],而不是'DIRS': [],

另请参阅:TemplateDoesNotExist at /

的答案

答案 5 :(得分:0)

TEMPLATE_DIRS =(     “mysite的/模板” )

TemplateDoesNotExist - file exists, no permissions issue

答案 6 :(得分:0)

我的模板文件夹不是python包,因为它缺少__init__.py文件。 这可能就是为什么Django没有找到我的模板的原因。

答案 7 :(得分:0)

尝试阅读调试器,然后浏览该链接以了解链接的哪一部分损坏了

wrong link from debugger

答案 8 :(得分:0)

这里有许多很好的答案,但是在更新旧项目(噩梦=百日草属,django_cms,AUTH_USER_MODEL ='accounts.CustomUser')时,该项目并未进行维护(从django 1.6到django 1.7),这是一个漫长过程的第一步,我发现没有任何效果。然后我注意到错误在尝试加载的模板周围带有引号:

/home/vagrant/venv/crowd88/local/lib/python2.7/site-packages/djangocms_admin_style/templates/'core/includes/ga.html' (File does not exist)

所以我查看了源代码,发现引号是这样删除的:

# lib/python2.7/site-packages/cms/utils/plugins.py
...
template = get_template(force_unicode(node.template).strip('"'))
...

然后我注意到装载程序中使用了单引号

{% include core/includes/ga.html' %}

所以解决方法是

{% include "core/includes/ga.html" %}

使用正则表达式过程

答案 9 :(得分:0)

将“模板”文件夹移动到主文件夹,而不是任何子文件夹。或与其他项目文件夹位于同一级别。这可能是Django无法定位我的模板的原因。 完成此操作后,我的项目开始工作。

答案 10 :(得分:0)

默认情况下,在settings.py文件中,“ DIRS ”数组为空,如下所示。

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

因此,要解决此问题,只需将 BASE_DIR /'templates'添加到数组中,如下所示。而且你很好走。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],
        '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',
            ],
        },
    },
]

答案 11 :(得分:0)

转到settings.py文件并检查“模板”部分。注意DIR值,默认情况下应为[]。在其中添加“ os.path.join(BASE_DIR,'模板')”。它应该看起来像这样:

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR, 'templates')],
    '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',
        ],
    },
},

]

答案 12 :(得分:-1)

确保您的settings.py中的dirs目录如下所示:

'DIRS': [os.path.join(BASE_DIR, 'templates')],