如何将 Json 数据显示到 Django 模板?

Posted

技术标签:

【中文标题】如何将 Json 数据显示到 Django 模板?【英文标题】:How to show Json data to Django template? 【发布时间】:2021-10-08 07:26:45 【问题描述】:

我将 JSON 数据存储到 TextField : TextField 中的数据:

["id":1,"Name":"AC","Quantity":"12","Weight":"200","WeightTypes":"KG",
 "TotalWeight":"2400","CustomsCharge":"300.0","Subtotal":"3600",

"id":2,"Name":"Soap","Quantity":"12","Weight":"500",
 "WeightTypes":"GRAM","TotalWeight":"6","Customs Charge":"0.0","Subtotal":"12"]

我在 view.py: 中使用 产品 = json.loads(数据)

之后,我尝试在 Django 模板

中显示每个项目
% for p in products %
    % for key, value in p.items %
            <tr>
                <td>value.id</td>
                <td>value.Name</td>
                <td>value.Quantity</td>
                <td>value.CustomsCharge</td>
                <td>value.Subtotal</td>
                
            </tr>
        % endfor %
            
    % endfor % 

但它不起作用! 如何从这个 Jason 字段中获取每个值?

提前谢谢你。

【问题讨论】:

不工作是什么意思?解释一下发生了什么。 好吧,实际上如果我使用&lt;td&gt;value&lt;/td&gt; 那么,我可以获得所有的价值。但是,如果我想看到使用&lt;td&gt;value.Name&lt;/td&gt; 仅获取 Name 或仅获取 CustomsCharges 则没有价值。我愿意获取特定的价值。 【参考方案1】:

我认为您将数据解析为模板是错误的。基本上你不需要使用p.items,因为它会解压你原来的dict items值,同时你只需要直接调用产品循环。

% for p in products %
    <tr>
        <td> p.id </td>
        <td> p.Name </td>
        <td> p.Quantity  (pcs)</td>
        <td> p.Weight </td>
        <td> p.WeightTypes </td>
        <td> p.TotalWeight </td>
        <td> p.CustomsCharge </td>
        <td> p.Subtotal </td>
    </tr>
% endfor %

【讨论】:

以上是关于如何将 Json 数据显示到 Django 模板?的主要内容,如果未能解决你的问题,请参考以下文章

在 django 模板中显示 json 数据

Django 使用自定义 SQL 而不是模型将 JSON 对象返回到模板

关于Django模板的JSON

使用 django 模板将 json 填充到 html

如何解析和渲染 json 以在 Django 模板中使用

如何将 pandas 数据框转换为 json 以在 django 模板中使用