在模板中显示 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 模板中为所有值并排显示两个键的字典值