2009-05-09 11 views
1

J'essaie de comprendre comment retourner html à un appel jQuery, mais pour une raison quelconque, mon code refuse de fonctionner.Une simple question d'affichage pour les appels django/jQuery

t = get_template('success.html') 
html = t.render(Context({'success': True})) # should render '<p><h1>aoeu</h1></p>' 
x = "{'success' : '" + html + "'}" 
return HttpResponse(x) 

Code jQuery:

$.post("adduser", data, function(responseData){ 
    $('#content').html(responseData.success); 
}, "json"); 

si je remplace html avec une chaîne littérale (juste 'asdf' ou quelque chose), les changements de #content correctement. Si j'utilise le html rendu, il ne s'affiche pas. Qu'est-ce que je fais mal? Aussi, est-ce la bonne façon de faire un appel dynamique avec django?

+0

Avez-vous ce que vous attendez si vous alertez (responseData.success) ;? – Fermin

Répondre

2

Vous utilisez le type de données 'json', vous devez utiliser 'html' à la place. (source)

$.post("adduser", data, function(responseData){ 
    $('#content').html(responseData.success); 
}, "html"); 
+0

Je l'ai changé en html, mais si console.log (responseData.success) Je ne suis pas défini. Dois-je renvoyer du texte brut/html? Ou au format JSON? Ni l'un ni l'autre ne semblent travailler pour moi. – victor

+0

En fait, rien. Je n'ai pas supprimé le '.success' après responseData. Merci! – victor