2012-05-08 4 views
0

J'ai cette vue suivante que j'obtiens des données d'un modèle et ensuite sérialiser en JSON.Comment attraper et afficher la réponse JSON?

views.py

def polling(request): 
    if request.is_ajax(): 
     data = UserReview.objects.filter(movie_id=request.GET['m_id']) 
     serializers.serialize('json', data) 
     return HttpResponse(data, mimetype='application/json') 
    else: 
     raise Http404 

A côté client, je veux montrer maintenant ce contenu. J'utilise la fonction getJSON de jQuery pour archiver ceci. Il ne montrera rien, et le setTimeout ne fonctionne pas aussi bien. Mais je reçois une réponse quand je la débogue avec firebug, mais n'appelle pas la fonction alert() pour voir les données. J'ai essayé de comprendre ce que le problème pourrait être pendant un certain temps maintenant. Donc, je me demande si quelque chose ne va pas avec mon script?

javascript

function polling() { 
    $.getJSON( "/polling/", 
       {m_id: {{movie_info.id}} }, 
       function(data) { 
        alert(data) 
        setTimeout(polling, 5000) 
       }); 
    }; 
+1

Wow, 10,5 millions de questions sur l'ensemble du site .... – Blazemonger

+0

@blazemonger Chaque itération répond mieux non? : P – starcorn

+2

@Blazemonger c'est en fait la publication (question + réponse), Par exemple [10000000] (http://stackoverflow.com/questions/9999064/ember-js-select-view-template-by-model-type-object- valeur/10000000 # 10000000). Mais encore étonnant ~ – okm

Répondre

1

Certaines méthodes générales qui vous aideront à trouver ce qui est faux.

  1. Utilisez console.log très généreusement sur l'extrémité avant de faire en sorte que tout se passe comme prévu

  2. http://api.jquery.com/jQuery.ajax/ fonctions de rappel comme suggéré dans un commentaire, assurez-vous au moins logg une erreur

  3. https://docs.djangoproject.com/en/dev/topics/logging/ mis en place un enregistreur de débogage, assurez-vous que vous pouvez voir ce qui se passe et ce que django revient en fait JSON . Mieux encore, déposez ce badboy n'importe où dans votre code et ASSUREZ-VOUS que tout va dans le bon sens. Si votre succès n'est pas appelé sur le front je parie que l'erreur est en django! savoir où.

  4. Vous pouvez voir les erreurs dans l'onglet HTML dans firebug si debug=True ou vous pouvez simplement demander /polling/ via votre navigateur et voir l'écran d'erreur django.

en utilisant une partie ou l'un de ces devrait vous mettre dans un bon endroit pour résoudre votre problème serveur django dev rend une aisance absolue brise par ces erreurs s'il vous plaît faites quelques recherches et découvrez les nombreux nombreux outils de débogage en disponible pour vous!

1

Je suis nouveau à tout cela, mais avez-vous essayé d'utiliser.

$ .ajax ({

 url: "/Build/AllStatuses", 
     dataType: 'json', 
     success: function (buildstatuses) 

Voilà comment je l'habitude d'appeler mon JSON et il semble fonctionner.

+0

oui, j'ai essayé ça aussi. Il ne présentera toujours pas la sortie du modèle en tant que JSON. Quoi qu'il en soit, il présentera une simple httpresponse. Donc, je pense que l'erreur pourrait être lorsque je sérialiser le modèle en JSON. Je ne suis pas sûr cependant. – starcorn