Django项目中用Bootstrap5展示国家API JSON数据的货币字段问题
解决Django模板中展示Rest Countries API货币数据的问题
问题分析
Rest Countries API返回的currencies字段是键为货币代码、值为货币详情的字典,每个国家的货币代码不同(比如USD、EUR),硬编码指定货币代码会产生冗余,需要动态遍历这个字典来获取数据。
解决方法
在Django模板中,通过{% for %}循环遍历currencies字典的items,即可动态取出每个货币的名称和代码:
Bootstrap 5卡片内的模板代码示例
<div class="card mb-3"> <div class="card-body"> <h5 class="card-title">{{ x.name.common }}</h5> <p class="card-text">首都: {{ x.capital.0 }}</p> <!-- 动态渲染货币信息 --> <p class="card-text"> 货币: {% for code, currency in x.currencies.items %} {{ currency.name }} ({{ code }}) {% if not forloop.last %}, {% endif %} {% endfor %} </p> </div> </div>
之前尝试无效的原因
x.currencies.items()需要配合Django模板的{% for %}循环使用,不能直接输出;x.currencies.values()能拿到货币详情列表,但无法获取对应的货币代码;x.currencies[1]无效是因为字典按键存储,不支持数字索引访问。
补充说明
如果部分国家存在多种货币,上述代码会自动用逗号分隔所有货币信息;若只有一种货币,则仅显示单个条目,完全适配API返回的各种情况。
内容的提问来源于stack exchange,提问作者Roelof Planet
相关产品推荐
相关产品推荐

