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

如何解决get_context_data中for循环仅展示单组requests_cache解析的JSON数据问题?

问题修复方案

你的代码问题出在循环内直接赋值并返回,导致只处理第一个元素就终止;如果把return移到循环外,又会因为每次赋值覆盖之前的结果,最终只保留最后一个元素。要展示所有解析后的数据,需要把所有结果收集到列表中再传递给context。

修改后的代码:

def get_context_data(self, *, object_list=None, **kwargs):
    context = super(ShowProjectBudgetList, self).get_context_data(**kwargs)

    session = requests_cache.CachedSession('project_budget_cache')
    url = config('REPORT_PROJECT_BUDGET')
    response = session.get(url=url, auth=UNICA_AUTH).json()

    # 初始化空列表存储所有解析后的ObjectGUID
    object_guids = []
    for item in response:
        my_js = json.dumps(item)
        parsed_json = ReportProjectBudgetSerializer.parse_raw(my_js)
        obj = parsed_json.ObjectGUID
        # 将每个结果添加到列表
        object_guids.append(obj)
    
    # 把整个列表赋值给context,而不是单个元素
    context['response_json'] = object_guids
    return context

关键修改点:

  • 新增object_guids列表,用来累积所有解析出的ObjectGUID值
  • 循环内用append()替代直接赋值,避免覆盖之前的结果
  • 将return context移到循环外部,确保遍历完所有response元素后再返回context
  • 最终传递给模板的是一个包含所有数据的列表,你可以在模板中通过循环遍历这个列表来展示每一条数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 13:33:15