您的位置:

最佳方案处理django TemplateDoesNotExist(template_name, tried=tried, backend=self)

  发布时间:2023-03-30 22:15:45
报错的原因这个错误通常是由于Django找不到指定的模板文件导致的。检查你的template_name是否写对了,是否在对应的app/template/目录下。最后,检查是否有语法错误或其他错误,确保模板文件符合Django的语法规则。如果模板文件名称和文件位置都是正确的,但还是抛出异常,你可以尝试重启Django服务器, 以确保Django能够重新扫描模板文件目录。如果这些都不能解决问题, 请参考Django文档,来确保你的配置正确。

报错的原因

这个错误通常是由于Django找不到指定的模板文件导致的。 可能是指定的模板文件名称错误,或者模板文件位置错误。

检查你的template_name是否写对了,是否在对应的app/template/目录下。

还有是检查settings.py的DIRS的配置是否正确,是否加了对应的app/template/的目录。

如下:


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

如果仍然不行,你可以打印出来template_name的值,看看是否和你预期的相符。

另外,还要检查一下你的模板文件是否存在,如果文件名或路径写错了,Django就无法找到它。

如何解决

首先,确认模板文件名称是否正确,检查模板文件的位置是否正确。 确保您的模板文件位于正确的目录下,并且文件名称和您在代码中使用的文件名称相匹配。

其次,检查您的settings.py文件是否配置了模板文件目录。确保DIRS设置中包含了您的模板目录。

然后,检查模板文件是否存在。如果文件不存在,请确保您已经正确地创建了该文件。

最后,检查是否有语法错误或其他错误,确保模板文件符合Django的语法规则。

如果仍然不行,你可以打印出来template_name的值,看看是否和你预期的相符。

使用例子

以下是一个使用模板的示例视图:


from django.shortcuts import render

def my_view(request):
    return render(request, 'my_template.html', {})

这个视图将使用名为'my_template.html'的模板来渲染网页。

此外,你还需要在settings.py文件里面配置模板文件目录


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

并在对应的app下面新建一个template目录,把模板文件放在里面。

如果模板文件名称和文件位置都是正确的,但还是抛出TemplateDoesNotExist异常,你可以尝试重启Django服务器, 以确保Django能够重新扫描模板文件目录。

如果这些都不能解决问题, 请参考Django文档,来确保你的配置正确。