首页 > 解决方案 > 当 Django 似乎正在搜索正确的路径时如何解决“TemplateDoesNotExist”错误

问题描述

我正在为 Django 中的一个新项目设置结构。我创建了应用程序“帐户”,在其中添加了一个包含 html 模板的模板文件夹。但是,当我进入开发服务器并从我的索引页面(加载没有问题)中单击该页面的链接时,它会返回一个 TemplateDoesNotExist 错误消息。

我已经检查了错误消息,并且 Template-loader postmortem 详细说明了我的 html 模板的正确路径(我已经检查了无数次并确保了这一点),这表明 Django 正在寻找它的正确位置。但是,它也说“来源不存在”。考虑到 Django 似乎正在搜索正确的路径,是否有人有任何故障排除提示?

# From settings.py ('accounts' is also included with INSTALLED_APPS):

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# ...

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

# From urls.py:

from django.conf.urls import url, include
from accounts.views import index

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', index, name="index"),
    url(r'^accounts/', include('accounts.urls')),
]

# From urls.py (accounts):

from .views import signup

urlpatterns = [
    url(r'^signup/$', signup, name="signup"),
]

# From views.py (accounts):

def signup(request):
    return render(request, 'signup')

标签: pythondjangodjango-templates

解决方案


我猜你的服务器机器上是否有更新版本的 django。

DIRS现在 (2.2)进入TEMPLATES设置 var. 在django 旧版本(例如:1.8)上是在DIRS设置 var.

然后,检查版本并移至最新版本并使用:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        ...
    },
]

关于设置。


推荐阅读