【问题标题】:Django Json Response formatting in templates模板中的 Django Json 响应格式
【发布时间】:2021-11-05 19:16:50
【问题描述】:

是否有可能以某种方式保持 JSON 响应的原样并将其缩进为正确的格式?

我想在我的 list.html 模板中呈现 list_text,但每次都出现不同的 json 响应。是否可以保持固定并正确缩进?

obj = {
                list_text[0],
                list_text[1],
                list_text[2],
                list_text[3],
                list_text[4],
                list_text[5],
                list_text[6],
                list_text[7],
            }
            return render(request, 'card/list.html', {'form':form, 'list_text': obj})

我在这里找到了类似的 JSON 文章:Link

但它是用于 JSON 序列化或类似的东西,我希望将其传递给模板。

【问题讨论】:

    标签: json django django-templates


    【解决方案1】:

    如果您希望维护订单,请使用列表而不是 set

    obj = [
        list_text[0],
        list_text[1],
        list_text[2],
        list_text[3],
        list_text[4],
        list_text[5],
        list_text[6],
        list_text[7],
    ]
    return render(request, 'card/list.html', {'form':form, 'list_text': obj})
    

    您可能可以传递list_text,因为它看起来像是一个列表。

    现在,为了在模板中正确缩进,最简单的方法是将 Python 对象转换为 JSON 字符串。

    list_text_as_a_string = json.dumps(obj, indent=2)
    return render(request, 'card/list.html', {'form':form, 'list_text': list_text_as_a_string})
    

    注意indent=2。默认情况下,json.dumps 会避免任何额外的空白。

    现在在你的模板中简单地做

    <pre>{{ list_text }}</pre>
    

    pre tag 采用预先格式化的文本并按原样呈现。 (通常 HTML 会忽略额外的空白)。它还使用固定宽度的字体,所以看起来更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-24
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 2016-01-13
      • 2011-06-22
      • 1970-01-01
      相关资源
      最近更新 更多