2016-08-22 3 views
0

少し明確にするために前の質問を削除しました。

私はDjangoで動くウェブサイトと動的に取り込まれたテーブルを持つテンプレートを持っています。

テンプレート:

<table id = 'my_table'> 
    <thead> 
     ...... 
    </thead> 
    <tbody> 
    </tbody> 
</table> 

Javascriptを

$(function() 
{ 
    refresh_vendors_list_table(); 
}); 

function refresh_vednors_list_table() 
{ 
    $.get("/ajax_refresh_vendors_list_table/", function(response) 
    { 
     $('#my_table').find('tbody').html(response); 
    }); 
} 

ビュー:テーブル(vendors_list_paginator.html)用

def ajax_refresh_vendors_list_table(request): 
    template = 'vendors/vendors_list_paginator.html' 
    vendors_qs = vendors_qs.filter(...) 
    context = {'vendors_qs':vendors_qs} 
    return render_to_response(template, 
           context, 
           context_instance=RequestContext(request)) 

テンプレート

{% load el_pagination_tags %} 

{% paginate vendors_qs %} 

{% for vendor in vendors_qs %} 
    <tr> 
     ...... 
    </tr> 
{% endfor %} 
{% show_more_table %} 

テーブルの各行を押すと、対応するベンダーのプロファイルにリダイレクトされます。プロフィールを編集した後、私は戻るボタンを押して、再びテーブルページに戻ります。私は(対応するDjangoのビューは呼び出されません。この段階で、私は非常に奇妙な行動が$.get機能で観察され

(のは、それがをブレークポイント呼びましょう)私もtemplate = 'vendors/vendors_list_paginator.html'にブレークポイントを置く$.get("/ajax_refresh_vendors_list_table/", data, function(response) のデバッグを開始します私のアプリがbreakpoing Aで停止するのを見ないでください)、そして$('#my_table').find('tbody').html(response);は、$ .get関数が正常に実行されるかのように直接実行されます。言い換えれば

、$のに.get機能は、サーバー側のいずれかの参加なしに実行される(Iは、任意の単語を強調しています。最初は私は多分、私がのURLconfファイルや他のいくつかのビューが呼ばれた台無しにすることを考えた。へこれをチェックして、ブラウザの戻るボタンを押す前にDjango IDEコンソールをクリアしてから、Django IDEコンソールで何も見なかったので、$ .get要求は何も表示されずに正常に実行されました!!!) ページネーションと関係がありますか?私は完全に失われています。助けてください ! Sardorbekの答えを1として

UPDATE

、私は... ajax_refresh_vendors_list_table

@require_http_methods(["GET"]) 
@never_cache 
def ajax_refresh_vendors_list_table(request): 
    ... 
+0

でこのURLをラップしようと、それはあなたのブレークポイントで停止していますか? –

+0

ブラウザのコンソールを見て、jsにブレークポイントを置いてみてください。あなたの 'data'変数はどこから来ているのでしょうか? –

+1

Hm ...あなたのブラウザがこのリクエストをキャッシュしているようです。 https://docs.djangoproject.com/en/1.9/topics/http/decorators/#django.views.decorators.cache.never_cacheでこのURLをラップしようとしています –

答えて

1

フムの定義の前に次のデコレータを含めましたお使いのブラウザはこの要求をキャッシュされているように見えます。手動で `/`/ajax_refresh_vendors_list_tableを開いた場合never_cache

never_cache(url(...)) 
+0

Sardorbek、残念なことにあなたの答えは一度しかできませんでした - 私はそれをテストし始めましたが、再度更新しないでください。私は私の更新されたコードを提供します、多分それは私のせいで、私はキャッシュに何か間違っています。私はeverythinkを正しくやっていることを確認してください。 –

関連する問題