【问题标题】:display json dictionary values in templates在模板中显示 json 字典值
【发布时间】: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 的评论

标签: django json django-templates django-views django-1.3


【解决方案1】:

试试这个方法

from django.utils import simplejson

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

【讨论】:

  • 问题是我从服务器得到了一个大的 json,因此很难在视图中解析它并手动添加到字典中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
  • 1970-01-01
  • 2014-11-21
相关资源
最近更新 更多