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

运行Django项目遇TemplateDoesNotExist及版本混淆问题求助

嘿,我来帮你搞定这两个棘手的问题!

问题1:TemplateDoesNotExist 错误

访问 /courses/course_list.html 时出现这个错误,你可以从这几个方向排查:

  • 核对模板文件路径:Django默认会扫描每个app下的templates目录,建议把course_list.html放在 courses/templates/courses/ 路径下(嵌套一层app名是为了避免不同app的模板重名冲突);如果放在项目根目录的templates文件夹里,要确保项目settings.py的TEMPLATES配置里包含了这个根目录路径。
  • 确认app已注册:打开项目根目录的settings.py,检查INSTALLED_APPS列表里有没有加'courses'——要是没加,Django根本不会去这个app的templates目录找模板。
  • 检查视图渲染逻辑:你的视图函数得正确传递模板路径和上下文,比如:
    from django.shortcuts import render
    from .models import Course
    
    def course_list(request):
        courses = Course.objects.all()
        # 这里的模板路径要和实际文件位置对应
        return render(request, 'courses/course_list.html', {'courses': courses})
    
    别写错模板路径的拼写或大小写,Django对路径大小写是敏感的。
  • 你的模板代码本身没问题:
    {% for course in courses %} 
        <h2>{{course.title}}</h2> 
        {{course.description}} 
    {% endfor %}
    
    只要视图里传了courses变量,这段循环渲染的逻辑是完全OK的。
问题2:Django版本不一致的混淆

浏览器显示Django 1.11.1,但PyCharm项目解释器设的是2.0.3,这大概率是运行环境和项目配置不匹配导致的,解决步骤:

  • 检查PyCharm的运行配置:打开Run -> Edit Configurations,找到你的Django服务配置,看看Python interpreter是不是选了你设置的那个2.0.3的虚拟环境——很多时候这里会默认用系统自带的Python解释器,版本自然不对。
  • 确认虚拟环境激活状态:在PyCharm的终端里输入python -m django --version,如果显示1.11.1,说明当前终端没激活你配置的虚拟环境。手动激活一下:Linux/macOS用source venv/bin/activate,Windows用venv\Scripts\activate,再重新启动Django服务。
  • 重启PyCharm:有时候配置修改后需要重启IDE才能彻底生效,试试重启后再运行服务,看浏览器错误页面显示的版本是不是变成2.0.3了。

另外,你的courses/urls.py代码补全后应该是这样的(假设视图函数叫course_list):

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

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

内容的提问来源于stack exchange,提问作者Ashish Yadav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:14:54