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

Django报错'Stocks' object is not iterable 问题求助

问题修复方案

你代码中存在3个核心错误,按以下步骤修改即可正常渲染数据:

  1. 修复视图层数据查询逻辑
    你当前views.py中传递给模板的是Stocks模型类本身,并非数据库中存储的实际记录,无法被遍历渲染。修改为调用查询方法获取数据集:
# views.py 修复后代码
def stocks_mt(request):
    # 获取Stocks表中所有存储的记录传递给模板
    return render(request, 'azmt.html', {'stock': Stocks.objects.all()})
  1. 修正模板变量语法错误
    home.html中渲染商品名称的位置缺失一个花括号,导致Django模板引擎无法识别为变量:
    原错误写法:
<h5 class="card-title text-center">{stocks.name}</h5>

修复后写法:

<h5 class="card-title text-center">{{ stocks.name }}</h5>
  1. 修正图片字段渲染逻辑
    Django的ImageField字段直接输出仅能得到文件相对存储路径,需要调用.url属性才能生成正确的可访问资源地址:
    原错误写法:
<img src="{{stocks.image}}" class="card-img-top" alt="...">

修复后写法:

<img src="{{stocks.image.url}}" class="card-img-top" alt="...">

注意:如果尚未配置媒体资源访问规则,需要先在项目settings.py中添加MEDIA_ROOT、MEDIA_URL配置,同时在根路由文件中添加媒体资源的路由映射,否则图片资源依旧无法正常加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:15:03