Python 如何在HTML中解析来自Django的.serialize('json',data)的输出

Python 如何在HTML中解析来自Django的.serialize('json',data)的输出,python,django,Python,Django,我试图循环一个序列化的JSON对象,并将其显示为列表,但循环不是列出我想要的属性,而是在JSON字符串中的每个字符上运行。当我对一个目录列表做同样的操作时,它就起作用了。我做错了什么 Ptyhon代码: HTML 后果 HTML页面的屏幕截图 这是因为当您使用serializer.serialize进行序列化时,它会返回一个字符串。您需要将其转换为json对象,如下所示: import json json_data = json.loads(dishes_ser) # then pass thi

我试图循环一个序列化的JSON对象,并将其显示为列表,但循环不是列出我想要的属性,而是在JSON字符串中的每个字符上运行。当我对一个目录列表做同样的操作时,它就起作用了。我做错了什么

Ptyhon代码: HTML 后果 HTML页面的屏幕截图
这是因为当您使用serializer.serialize进行序列化时,它会返回一个字符串。您需要将其转换为json对象,如下所示:

import json
json_data = json.loads(dishes_ser)
# then pass this as context
context = {
    'dishes': json_data,
    'check': check,
}
// context
context = {
    'dishes': Dish.objects.all(),
    'check': check,
}
// template
{% for data in dishes  %}
        <li>{{ data.dish }}</li>
{% empty %}
        <li>No Dishes</li>
{% endfor %}
但是,当您可以直接将queryset发送到模板并使用它时,为什么需要这样做:

import json
json_data = json.loads(dishes_ser)
# then pass this as context
context = {
    'dishes': json_data,
    'check': check,
}
// context
context = {
    'dishes': Dish.objects.all(),
    'check': check,
}
// template
{% for data in dishes  %}
        <li>{{ data.dish }}</li>
{% empty %}
        <li>No Dishes</li>
{% endfor %}

非常感谢@ruddra!我还想将一些数据传递到javascript代码中,所以我想弄清楚如何生成有效的JSON。后续问题:是否有一种简单的方法来检查对象的格式?我的屏幕截图中两个变量的原始输出在语法上看起来完全相同,除了单引号和双引号,这就是为什么它在一开始对我来说是有效的,从而增加了我对为什么它不起作用的困惑。您可以使用isinstancevariable、dict或typevariable来检查对象的类型