【问题标题】:How to resolve 'TemplateDoesNotExist' error when Django appears to be searching the correct path当 Django 似乎正在搜索正确的路径时如何解决“TemplateDoesNotExist”错误
【发布时间】:2019-06-27 17:04:47
【问题描述】:

我正在为 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')

【问题讨论】:

    标签: python django django-templates


    【解决方案1】:

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

    DIRS is now (2.2)TEMPLATES 设置变量。 django old version (ex: 1.8)DIRS 设置变量中。

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

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

    关于设置。

    【讨论】:

    • 我运行 Django 1.11 纯粹是因为我习惯了语法。我用 Django 2.2.2 创建了一个新环境,一切似乎都运行良好。谢谢!
    • 嗨@samalty,太棒了!欢迎来到 Stack Overflow:What should I do when someone answers my question
    猜你喜欢
    • 2019-12-04
    • 2022-11-22
    • 2019-01-04
    • 2012-05-08
    • 2021-11-22
    • 2021-02-08
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多