gpt4 book ai didi

django & "TemplateDoesNotExist"错误

转载 作者:行者123 更新时间:2023-12-03 14:40:50 27 4
gpt4 key购买 nike

我有一个看起来很常见的初学者问题。

我正在处理我的第一个 django 项目,当我设置 View 时,出现“TemplateDoesNotExist”错误。
我现在花了很多时间在这上面 - 我知道有很多关于它的主题,但到目前为止没有任何帮助。

我希望我可以提供所有需要的信息,以便高级 django 用户可以直接看到我做错了什么。

我正在使用开发服务器。和 windows 7 & sqlite3。

这是我得到的错误:

TemplateDoesNotExist at /skates/
allsk8s.html
Request Method: GET
Request URL: http://127.0.0.1:8000/skates/
Django Version: 1.4.3
Exception Type: TemplateDoesNotExist

在 settings.py 我这样设置 TEMPLATE_DIRS :
TEMPLATE_DIRS = (
r'H:/netz2/skateprojekt/templates/',
)

模板加载器如下所示:
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# 'django.template.loaders.eggs.Loader',
)

这是我的观点:
from django.shortcuts import render_to_response
from django.template import RequestContext
from sk8.models import Sk8

def AllSk8s(request):
skates = Sk8.objects.all().order_by('name')
context = {'skates':skates}
return render_to_response('allsk8s.html', context, context_instance=RequestContext(request))

它应该链接到 allsk8s.html - 看起来确实如此,但找不到该文件,尽管它肯定位于正确的文件夹中。
但如您所见:
Template-loader postmortem
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
H:\netz2\skateprojekt\templates\allsk8s.html (File does not exist)

这是我的 urls.py 的一部分
    urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
(r'^skates/$', 'sk8.views.AllSk8s'),
)

这是系统路径:
H:\netz2\skateproject\templates

在模板文件夹中有一个名为 allsk8s.html 的文件
据我了解 - 这应该有效。
我真的希望有人能帮助我,因为这是我第二次遇到这样的问题,我无法弄清楚问题所在。

提前致谢
丹尼尔

编辑:

我尝试将此添加到我的 settings.py 中:
import os
DIRNAME = os.path.abspath(os.path.dirname(__file__))

并将我的 TEMPLATE_DIRS 更改为:
TEMPLATE_DIRS = (
os.path.join(DIRNAME, r'H:/netz2/skateprojekt/templates/'),
)

因为我读过它会有所帮助 - 但它仍然返回相同的错误 - 所以我再次将它改回来。 ;(

编辑:

另外,我检查过,当我输入错误的网址时,它会引发此错误:
Using the URLconf defined in skateproject.urls, Django tried these URL patterns, in this order:
^admin/
^skates/$

所以溜冰鞋的网址应该在那里-但不能“解决”-我不明白:(

编辑:

我今天发现了一些新东西,Template-loader postmortem 说它还会检查这些目录:
Using loader django.template.loaders.app_directories.Loader:
C:\Python27\lib\site-packages\django\contrib\auth\templates\allsk8s.html (File does not exist)
C:\Python27\lib\site-packages\django\contrib\admin\templates\allsk8s.html (File does not exist)

所以我将我的模板文件移到那里并收到一个新错误 - 通过将我的 html 文件从 ansi 转换为 utf8 和 tada 解决了这个问题 - 它有效。
不幸的是,我不能让这个文件夹中的模板文件导致它不是项目的一部分。当我将文件移回原始位置时,我又回到了旧错误:(

最佳答案

此问题的解决方案之一是您应该在 settings.py 中添加应用程序。我假设您有一个名为发票的应用程序,那么解决方案是

INSTALLED_APPS = [
'invoice.apps.InoviceConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

关于django & "TemplateDoesNotExist"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14150341/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com