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

如何在Django模板中解析数组变量?元素不显示问题排查

解决Django模板中数组元素无法显示的问题

问题原因

你在Django模板中访问列表元素的语法错误,导致数组内容无法渲染。Django模板里的点.语法用于访问对象属性或字典键,不能直接用来获取列表的索引元素。

解决方案

将模板中访问列表元素的方式从ytthumbnail.i、yttitle.i改为ytthumbnail[i]、yttitle[i]即可。

修正后的模板代码

{% extends 'main.html'%}

{% block title %}CourseCounduit || A University In Your Pocket{% endblock title%}
{% block content %}
<h1>Your roadmap for</h1>
<div id="Course-container">
    {%for i in loopnum %}
    <div>
        <img src="{{ ytthumbnail[i] }}" alt="YouTube视频缩略图" sizes="100px" srcset="100px">
        <h5>{{ yttitle[i] }}</h5>
    </div>
    {%endfor%}
</div>
{% endblock %}

额外优化建议

你的views.py存在潜在的变量未定义风险:当youtube != "youtubego"时,ytid、yttitle、ytthumbnail未初始化,会导致模板渲染报错。建议在函数开头初始化这些变量:

def check(request):
    data = []
    # 初始化变量避免未定义报错
    ytid, yttitle, ytthumbnail = [], [], []
    if request.method == 'POST':
        prompt = request.POST['pathway']
        youtube = request.POST.get('youtube')
        udemy = request.POST.get('udemy')
    # Uses the user's prompt to generate the roadmap
    data = scrapeSite(prompt)
    looprange = range(len(data))
    if youtube == "youtubego":
        ytid, yttitle, ytthumbnail = searchyt(prompt, data)
    context = {
        'ytid': ytid,
        'yttitle': yttitle,
        'loopnum': looprange,
        'ytthumbnail': ytthumbnail,
    }
    return render(request, 'generate.html', context)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:25:12