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

Django模板遍历上下文传递的items无内容显示问题求助

问题排查与解决方案

核心问题原因

  • 你当前遍历的api_reply是接口返回的完整JSON结构,其顶级键只有error和result两个,实际要展示的币种、余额数据都存在api_reply['result']字段中,直接遍历顶级结构自然不会输出你想要的表格内容。
  • 额外排查点:如果接口返回的api_reply是JSON字符串而非Python字典,调用.items()方法会无效,Django模板不会报错但也不会输出内容。

修复步骤

1. 代码调整(两种方案二选一即可)

方案1:调整视图层传输的数据(推荐,性能更优)

视图层直接将result字段的内容传给模板,提前过滤无用数据:

def kraken(request):
    """ A view to return kraken page """
    # 若api_reply是接口返回的JSON字符串,需先转成Python字典:
    # import json
    # api_reply = json.loads(接口返回的JSON字符串)
    context = {
        'coin_data': api_reply['result'],
    }
    return render(request, 'home/kraken.html', context)

模板对应调整遍历对象:

{% for k, v in coin_data.items %}
<tr>
  <td>{{ k }}</td>
  <td>{{ v }}</td>
</tr>
{% endfor %}

方案2:仅调整模板遍历层级

不需要修改视图代码,直接在模板中指定遍历result字段即可:

{% for k, v in api_reply.result.items %}
<tr>
  <td>{{ k }}</td>
  <td>{{ v }}</td>
</tr>
{% endfor %}

2. 校验步骤

如果调整后仍无内容输出,在视图层加打印代码确认数据状态:

# 加在context赋值之前即可
print(type(api_reply)) # 确认输出为<class 'dict'>,若为str则说明没有转JSON
print(api_reply.keys()) # 确认输出包含'result'键
print(api_reply['result']) # 确认输出为你需要的币种、余额对应字典

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:24:05