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

求助:Django模型数据无法在HTML页面正常渲染显示

问题排查与修复方案

嘿,我一眼就找到问题啦!你的视图已经正确从数据库拉取了Donation数据,但没有把上下文数据传递给模板,这就是页面没法渲染出捐赠盒子的核心原因。

1. 修复视图函数的关键错误

你当前的视图里,明明创建了包含donations的context字典,但调用render()时完全没把这个字典传进去。修改后的视图代码如下:

def availablesupplies(request):
    donations = Donation.objects.all()
    context = {'donations': donations}
    # 把context作为第三个参数传给render函数,这是传递数据到模板的关键
    return render(request, 'availablesupplies.html', context)

2. 额外验证小技巧

为了确保万无一失,你可以在模板里加个小验证步骤:

  • 在循环前加一行:{{ donations|length }} 条捐赠数据,看看是否能正确显示数据库里的条目数量,确认数据确实被传递到了模板。
  • 给循环加个空状态提示,避免数据为空时页面一片空白:
    <div class="row">
        {% for donation in donations %}
        <!-- 你的盒子代码 -->
        {% empty %}
        <p>暂无捐赠数据</p>
        {% endfor %}
    </div>
    

3. 补充:模板静态内容替换

另外,你模板里的产品名称、价格都是固定死的(比如<h6><strong>Product</strong></h6>、<strong>$20</strong>),记得把它们替换成Donation模型里的真实字段,比如:

<h6><strong>{{ donation.title }}</strong></h6>
<h4 style="display: inline-block; float: right"><strong>数量: {{ donation.quantity }}</strong></h4>

(可以根据你实际想要展示的字段调整,比如category、location等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 21:42:27