サーバーからJSONオブジェクトが返されました。それは次のようになります。jsonをテンプレートとして辞書としてレンダリングする
{"1":{"id":"1","name":"autos"},
"2":{"id":"2","name":"business"},
"3":{"id":"3","name":"cities"},
"4":{"id":"4","name":"drama"},
"5":{"id":"5","name":"movies"},
"6":{"id":"6","name":"finance"},
"7":{"id":"7","name":"electronics"}}
私のJSONの文字列が含まれるだから私はテンプレートをレンダリングしています:
<h3>Ugly, raw list. Yuck !</h3>
1: {{ interests }}
<ul>
{% for k,v in interests.items %}
<li>{{k}}. - {{ v }}</li>
{% endfor %}
</ul>
template_name = 'socialauth/interests.html'
html = render_to_string(template_name, RequestContext(request, {'interests': ResultDict,}))
、結果として私が取得しています:
<h3>Ugly, raw list. Yuck !</h3>
1: {"1":{"id":"1","name":"autos"},"2":{"id":"2","name":"business"},"3":{"id":"3","name":"cities"},"4":{"id":"4","name":"drama"},"5":{"id":"5","name":"movies"},"6":{"id":"6","name":"finance"},"7":{"id":"7","name":"electronics"}}
<ul>
</ul>
をですから、私の{{interest}}変数は辞書として扱われないようです。しかし、なぜ ?それでは、私は文字列としてレンダリングされる親テンプレートにレンダリングされたリストを含めています(なぜなら、これはajaxでロードしているからです)。そして、次のように最終的な結果が見えます:
テンプレート:
<div class="connect-twitter" style="background:#f8f8f8">
<div id="likes-list">
{{ likes|safe }}
</div>
<a href="#" class="submit-step-2">Proceed</a>
</div>
結果:
Content-Type: text/html; charset=utf-8
{"html": "<h3>Ugly, raw list. Yuck !</h3>\n\n1: {"1":{"id":"1","name":"autos"},"2":{"id":"2","name":"business"},"3":{"id":"3","name":"cities"},"4":{"id":"4","name":"drama"},"5":{"id":"5","name":"movies"},"6":{"id":"6","name":"finance"},"7":{"id":"7","name":"electronics"}}\n\n<ul>\n \n</ul>"}
と、このコードをHTMLに挿入されたとき、それはちょうどひどいです:
http://img204.imageshack.us/img204/3858/listaxv.png
を何ですか?なぜそれが文字列として正常にレンダリングされないのですが、いくつかの 'Content-type'ヘッダーが追加されますか?
JSONオブジェクトを取得してコンテキストに渡すコードを表示してください。まず –