2011-10-28 1 views
1

私はテンプレートに渡した私のdjangoリストをループする必要があります。javascriptのループスルーdjangoリスト

私はDjangoのビューでこのコードを持っている:出力

if plan: 
    investments = Investment.objects.all().filter(plan = plan).order_by('maturity_date').filter(maturity_date__gte = now) 
    for i in investments: 
     financial_institution = i.financial_institution 
     amount = i.get_current_value(date) 
     fi_list.append({ 
      'fi': financial_institution, 
      'amt':amount 
     }) 
    context['list'] = fi_list 

[<financial_institution: Example> <amount: 5000>] 

を今私が何をしたいのかは、このリストをループで、そして私のjavascriptの変数は、項目に一致する場合一覧で、さらにコードを実行します。しかし、私はこれを行う方法に立ち往生しています。ここで

はjQueryのを使用して、これまでのところ私のjavascriptです:道路ダウン

function cdic_limit(amount) { 
     var limit = 100000.00; 
     var list ="{{ list }}"; 
     var fi = $("#id_financial_institution option:selected").text(); 

    } 

、私は最終的に欲しいものを、選択された機関がリストにある場合で、チェックし、その合計量がないことを確認してください$ 100kを超払います

何か提案がありますか?

+0

テンプレートコードはどのように見えますか?また、なぜクライアント側でこのチェックを実行したいのですか(つまりjavascriptを使用しています)?そして、もし施設が100kを超えているかどうかを知ったら、あなたは何をするつもりですか? – ladaghini

+0

@ladaghini彼らは機関を選択すると、私はそれを行う必要があります、なぜ私はJavaScriptを使用しているthats。 – TheLifeOfSteve

答えて

1

コンテキストに追加する変数fi_listを使用して何を行うのか分かりません。テーブルなどの体系的な方法で機関とその限度額を一覧表示する場合は、選択した金融機関の名前を取得したのとほぼ同じ方法でamountのデータを取得するだけで十分です。

私はあなたがしているとは思わないすべての機関の金額をユーザーに明らかにするつもりで、明らかにHTMLコードのどこにでも存在するということは、ブラウザがレンダリングしているかどうかにかかわらず、そして、あなたが行うことができます一つのことは、あなたの応答は、(スクリプトタグに)持っているようなコードにするJSON文字列にエンコードfi_list次のとおりです。で

var finInst = jQuery.parseJSON("{{ jsonString }}"); 

function checkLimit(amount) { 
    // I don't know what amount is supposed to do. 
    if (finInst[jQuery(this).text()] > 100000) 
     // do amount > 100000 code 
    else 
     // amount within limit 
} 

をジャンゴ/ Pythonのコードのよう:最後に

import json 
if plan: 
    investments = Investment.objects.all().filter(plan = plan).order_by('maturity_date').filter(maturity_date__gte = now) 
    fi_list = {} 
    for i in investments: 
     financial_institution = i.financial_institution 
     amount = i.get_current_value(date) 
     fi_list[financial_institution] = amount 
    context['jsonString'] = json.dumps(fi_list) 

そして、 Webページから機関オプションが選択されるたびに、 checkLimit機能。

正に、これは各機関のこれらの金額をすべて公開したくないと思うので、本当に悪いコードです(非常に機密情報かもしれません)。したがって、オンザフライで結果を生成する唯一の信頼できる方法は、AJAXを使用して機関が選択されるたびにdjangoビューを呼び出すことです。これらの要求を簡素化するには、dajaxprojectを参照してください。

関連する問題