在模板中显示 json 字典值

Posted

技术标签:

【中文标题】在模板中显示 json 字典值【英文标题】:display json dictionary values in templates 【发布时间】:2011-12-06 17:30:11 【问题描述】:

我在 django1.3 中使用 jquery 做 ajax,它工作正常。我正在使用 jquery load 方法来填充模板。

当用户单击按钮时,我会异步获取一个 json 对象。我将它作为字典传递给另一个模板(我在第一个模板的 div 中加载该模板)。但我不知道我如何在模板中显示它。(我试图在模板页面中传递 json),但它会导致错误。 任何人都可以建议如何解决这个问题?

所以我使用正常的方式解析视图中的 json,并使用 render_to_response() 中的方法 locals() 将其传递给模板。这是一个好的方法吗?

testjqyery.html
$(document).ready(function() 
    $('#save').click(function(e)
    
        e.preventDefault();         
        $( '#results' ).html( ' ' ).load( '% url t %'  );            
    );
    <div id="results"></div>

views.py

def testupdater(request):
// getting json from server
//contents_json = json.loads(...)
json_data = 'json_dict': contents_json
return render_to_response( 'results.html' ,json_data,context_instance=RequestContext(request))

结果.html

% if json_dict|length %

% else %
% endif %

【问题讨论】:

如果您在服务器端渲染模板,为什么还需要 JSON?只需传递一个包含所有变量的普通上下文字典。 你是对的@Daniel Roseman,谢谢你 4 的评论 【参考方案1】:

试试这个方法

from django.utils import simplejson

data = []
data.append("msg": 'Hi this message')
json = simplejson.dumps(data)
return HttpResponse(json, mimetype='application/json')

【讨论】:

问题是我从服务器得到了一个大的 json,因此很难在视图中解析它并手动添加到字典中

以上是关于在模板中显示 json 字典值的主要内容,如果未能解决你的问题,请参考以下文章

Python - 如何在 django 模板中为所有值并排显示两个键的字典值

Django模板不显示循环键、值

在 django 模板中访问字典值

Django模板:从字典访问值列表

显示 % forloop% 的键和值的 Django 模板:如何遍历模板中的字典?

javascript中的Django模板值