2017-10-29 8 views
0

Djangoのバックエンドから変数を更新し、D3で構築しているグラフを更新するにはどうすればよいですか?つまり、動的に更新を行います。D3グラフの変数にDjangoからデータを読み込む方法

私はグラフを更新することができましたが、フロントエンドでフォームのパラメータを変更するたびに、ページ全体がレンダリングされました。データを更新し、D3でグラフを更新したいだけです。あなたは再びrequest.POSTをやった後return render(...)に必要

def growth(request): 
parsedData = [] 
if request.method == 'POST': 
    year_input = request.POST.get('years') 
    year_input_int = int(year_input) 
    growth_data = requests.get('https://www.ons.gov.uk/economy/grossdomesticproductgdp/timeseries/ihyp/qna/data') 
    # jsonList = [] 
    # jsonList.append(json.loads(growth_data.content)) 
    parsed_json = json.loads(growth_data.content) 
    growthData = {} 
    data_input = 'years' 
    for data in parsed_json[data_input][year_input_int:]: 
     growthData['date'] = data['date'] 
     growthData['value'] = data['value'] 
     growthData['year'] = data['year'] 
     parsedData.append(growthData.copy()) 
return render(request, 'dashboard/growth.html', { 'growth_json': json.dumps(parsedData) }) 
ここ

私のフォームのHTMLがあり、

<form method= "post" action="/indicators/growth/"> 
    {% csrf_token %} 
    <br> 
    <select type="text" name="years"> 
    <option value="60">2009</option> 
    <option value="61">2010</option> 
    <option value="62">2011</option> 
    </select> 
    <br> 
    <button type="botton">Get Data</button> 
</form> 

答えて

0

は、ここに私の見解です。

def growth(request): 
    template_name = 'dashboard/growth.html' 
    parsedData = [] 
    context = {'growth_json': parsedData, 'success': False} 

    if request.method == 'POST': 
     ... 
     for data in parsed_json[data_input][year_input_int:]: 
      growthData['date'] = data['date'] 
      growthData['value'] = data['value'] 
      growthData['year'] = data['year'] 
      parsedData.append(growthData.copy()) 

     context.update({'success': True}) 
     return render(request, template_name, context) # here 
    return render(request, template_name, context) 

テンプレート内にあります。

{% if success %} 
    {{ growth_json }} 
{% endif %} 
+0

私はそれを行い、感謝します。しかし、ページ全体をリフレッシュせずにグラフのデータを変更するにはどうすればよいですか? –

+1

@CésarBarbozaあなたはajax経由でそれを処理することができます... –

関連する問題