J'ai un objet JSON renvoyé par le serveur. Il ressemble à ceci:Rendu de json en tant que dictionnaire dans le modèle
{"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"}}
Je suis rendu un modèle comme une chaîne avec mon JSON inclus:
<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,}))
et par conséquent que je reçois:
<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>
Il semble donc que ma variable {{interests}} n'est pas traitée comme un dictionnaire. Mais pourquoi ? Quoi de plus, maintenant j'inclue la liste rendue au template parent qui est aussi rendue sous forme de chaîne (parce que je la charge avec ajax). Et le résultat final se présente comme suit:
modèle:
<div class="connect-twitter" style="background:#f8f8f8">
<div id="likes-list">
{{ likes|safe }}
</div>
<a href="#" class="submit-step-2">Proceed</a>
</div>
Résultat:
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>"}
Et lorsque ce code est inséré en html, il semble tout simplement horrible:
http://img204.imageshack.us/img204/3858/listaxv.png
Que diable? Pourquoi le rendu n'est-il pas normalement sous forme de chaînes, mais un en-tête 'Content-type' est ajouté?
Veuillez indiquer le code où vous obtenez l'objet JSON et transmettez-le au contexte. –