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

Django调用外部API获取数据后模板无法渲染Id与QuestionTitle字段如何解决

问题修复方案

根因确认

你的判断完全正确,外部API返回的Message字段是经过二次JSON序列化的字符串,并非可直接遍历的数组结构,因此模板循环无法读取到对应字段。

修复步骤

1. 修改views.py逻辑

首先导入Python内置的json处理模块,对Message字段做反序列化处理,将字符串转换为Python列表对象:

import json
import requests

def GetQuestion(request):
    headers = {'Content-Type': 'application/json', 'Authorization': 'Basic XXXXXXXXXX='}
    body = { "Tenant" : "devED" }
    GetQuestion_response = requests.post('https://url_name.com/api/GetQuestions', headers=headers, json=body).json()
    
    # 新增:反序列化Message字段的JSON字符串为可遍历列表
    if GetQuestion_response.get("Successful", False):
        try:
            GetQuestion_response["Message"] = json.loads(GetQuestion_response["Message"])
        except json.JSONDecodeError:
            # 异常处理:如果Message格式非法,置为空列表避免模板报错
            GetQuestion_response["Message"] = []
    
    GetQuestion_dict={
        'GetQuestion_response' : GetQuestion_response,
    }
    return render(request, 'app/GetQuestion.html', GetQuestion_dict)

注意:模板路径分隔符建议用正斜杠/兼容不同操作系统,避免Windows反斜杠的转义问题。

2. 模板无需修改

你原有模板的循环逻辑完全兼容转换后的Message列表,修改后端代码后即可正常输出Id和QuestionTitle字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:15:03