0

モデルからデータを取得し、その後JSONにシリアル化する次のビューがあります。

ビュー.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

クライアント側では、このコンテンツを表示したいと思います。getJSONこれをアーカイブするためにjQueryの機能を使用しています。何も表示されず、setTimeout も機能しません。しかし、firebugでデバッグすると応答が返さalert()れますが、データを表示する関数は呼び出されません。私はしばらくの間、問題が何であるかを理解しようとしてきました。私のスクリプトに何か問題があるのだろうか?

JavaScript

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

2 に答える 2

1

何が悪いのかを見つけるのに役立ついくつかの一般的な方法。

  1. console.logフロントエンドで非常に自由に使用して、すべてが計画どおりに進んでいることを確認します

  2. http://api.jquery.com/jQuery.ajax/コメントで提案されているコールバック関数、少なくともエラーをログに記録するようにしてください

  3. https://docs.djangoproject.com/en/dev/topics/logging/デバッグロガーを設定し、何が起こっているのか、どのdjangoが実際にjsonとして返されているのかを確認できるようにします。

  4. http://docs.python.org/library/pdb.htmlこのバッドボーイをコードのどこかにドロップして、すべてが正しく行われていることを確認することをお勧めします。あなたの成功がフロントエンドで呼び出されていない場合、エラーはdjangoにあるに違いありません!どこを見つけます。

  5. エラーは、firebugの[HTML]タブで表示できます。または、ブラウザからdebug=Trueリクエストしてdjangoエラー画面を表示することもできます。/polling/

これらの一部またはいずれかを使用すると、問題を解決するのに最適な場所になりますdjango dev serverを使用すると、これらのエラーを簡単に解決できます。調査を行って、利用できる多くのデバッグツールを見つけてください。

于 2012-05-08T14:52:32.270 に答える
1

私はこれらすべてに慣れていませんが、使用しようとしましたか。

$.ajax ({

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

これは私がjsonを呼び出す方法であり、うまくいくようです。

于 2012-05-08T13:58:36.410 に答える