You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中return render方法失效,TemplateDoesNotExist错误求助

解决Django中「TemplateDoesNotExist at /posts/」的常见问题

嘿,刚学Django遇到模板找不到的问题太正常了!我帮你梳理几个最容易踩的坑,一步步排查:

先确认核心配置是否到位

  • 应用必须注册:打开项目根目录的settings.py,检查INSTALLED_APPS列表里有没有加'posts'?Django只会去已注册应用的templates目录找模板,没注册的话肯定找不到。
  • 模板路径要符合规范:Django默认的模板查找逻辑是「应用目录/templates/应用名/模板文件」,所以你的index.html必须放在posts/templates/posts/index.html,而不是直接放在posts/templates/index.html。很多新手会漏了内层的posts目录,这是高频错误!

检查代码细节

1. 你提供的项目urls.py(这段看起来没问题,再确认下)

from django.contrib import admin
from django.conf.urls import url, include

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^posts/', include('posts.urls')),
]

2. 应用的views.py

确保渲染模板的代码路径正确,比如:

from django.shortcuts import render

def index(request):
    # 必须写完整的相对路径:应用名/模板名
    return render(request, 'posts/index.html')

3. 应用的urls.py

确认视图已经映射到/posts/路径,比如:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

其他实用排查技巧

  • 运行python manage.py check,Django会帮你检查项目配置的常见错误,比如应用未注册、路径拼写问题。
  • 检查目录和文件名的拼写:比如templates是不是写成template了?posts有没有拼错?Linux/macOS下大小写敏感,别把Posts和posts搞混。
  • 开启settings.py里的DEBUG = True,错误页面会显示Django实际查找的模板路径列表,你可以对照着看哪个路径不符合预期。

按照这些步骤排查,大概率能解决问题~

内容的提问来源于stack exchange,提问作者Srinivas Gadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:44:33