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

Django网站模板for循环渲染时变量信息无法显示求助

问题根因

你的问题核心是Django模板变量对大小写敏感,视图传递的上下文键名和模板调用的变量名不匹配。

你在views.py的render函数中传递的上下文键为大写开头的Courses,但HTML模板的for循环中使用的是小写开头的courses,模板找不到对应变量自然无法渲染数据。

解决方法(二选一即可)

方法1:修改视图的上下文键名,和模板变量保持一致

修改后的views.py代码如下:

from django.http import HttpResponse
from django.shortcuts import render
from .models import Course


def index(request):
    courses = Course.objects.all()
    # 将大写的Courses改为小写的courses
    return render(request, 'index.html', {"courses": courses})

方法2:修改模板的循环变量名,和视图传递的键名保持一致

修改后的模板循环部分代码如下:

{% for course in Courses %}
    <tr>
        <td>{{course.name}}</td>
        <td>{{course.language}}</td>
        <td>{{course.cost_in_rupees}}</td>
        <td>{{course.year_published}}</td>
    </tr>
{% endfor %}

修改完成后重启Django服务刷新页面即可,若仍无数据可在视图中添加print(courses),查看后台是否有输出查询到的课程数据,排查是否为数据库无对应存储数据的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 07:36:06