2016-07-22 6 views
0

私が提案、次のよ:私はいくつかの変数を渡していRefresh <div> element generated by a django templateジャンゴパラメータを持つ{%のURL%}(辞書のリスト)

を、ラ:

url: '{% url 'search_results' 'sched_dep_local' flights|escapejs %}', 

問題「フライト」はsearch_resultsテンプレートはへのアクセスを必要とdictsのリストがあり、そしてそれはかなり大規模だと

[{'foo': 'bar'}, {'foo': 'baz'}] and so on 

は、だから私は、{%のURLの%}でそれを使用することができる唯一の方法が表示され、アポストロフィのようなものが含まれていることですsがアポストロフィを取り除くためにescapejsと一緒にいたが、その後views.pyに、私はそれが再びdictsのリストである必要があり、私はのようなものを行うことができます。

def search_results(request, sort_key, flights): 
    flights = search_utils.sort(flights, sort_key) 
    return render_to_response('search_results.html', { 'flights' : flights})                                  

をする簡単な方法はありますこれを行う?あるいは、私はこの全部が間違っているのだろうか?

ETA:(私がやろうとしているかを説明し、その理由)も参照してください:

<script> 
$(".sort").on("click", function() { 
    $.ajax({ 
     url: '{% url 'search_results' 'sched_dep_local' flights|escapejs %}', 
     success: function(data) { 
      $('#search-results').html(data); 
     } 
    }); 
}); 
</script> 

私はフライトの各フライトのためにいくつかのデータを印刷する(search_results.html中)のテンプレートを持っています。私はそのデータを並べ替えてテンプレートを再レンダリングしたいのですが、どうやってその方法を見つけ出すことはできません。

+1

なぜディクテーションのリストを変数としてURLに渡す必要がありますか?あなたが達成しようとしているものがあれば、よりよい方法があると確信しています。 – knbk

+0

詳細が更新されました。より良い方法をお勧めできますか? – ballardjw2

答えて

0

これは、複雑なデータを処理する正しい方法ではありません。 URLを介して送信するのではなく、POSTを使用してリクエストの本文に送信する必要があります.jQueryを使用しているので、その呼び出しでmethod: "POST"を実行するだけです。バックエンドでは、JSONから逆シリアル化できます。

しかし、これを行うにはちょっと変わったようです。データはすでに明らかにDjangoのバックエンドから来ているので、そこに戻す理由は明確ではありません。

+0

ボタンをクリックしてページを更新せずにデータをソートできるようにしたい。私はこれを行うための良い方法を把握することはできません。 – ballardjw2

+0

なぜそれを並べ替えるためにDjangoに送る必要がありますか? Javascriptはデータを完全にソートすることができます。 –

+0

問題は並べ替えではありません。それはテンプレートをリフレッシュすることです。ソートされたデータを使用するテンプレートを再レンダリングする必要があります。 – ballardjw2

関連する問題