2017-05-29 8 views
-1

Ich zeige ein Multibarchart mit django-nvd3. Ich bekomme meine Daten fast wie im Beispiel. http://django-nvd3.readthedocs.io/en/latest/classes-doc/multi-bar-chart.htmlPYTHON Django Tag mit dynamischer Variable

view.py 
... 
return render_to_response('multibarchart.html', {'data': data, 'form': form}) 

meine Daten ist ein Wörterbuch mit allen Infos für nvd3. Die Daten stammen aus einer Datenbank. Das Wörterbuch hat Daten für mehrere Jahre, auf die ich entsprechend der Auswahl eines ausgewählten Formulars zugreifen möchte.

data = {2014: { 
      'charttype': charttype, 
      'chartdata': chartdata}, 
     2015: { 
      'charttype': charttype, 
      'chartdata': chartdata} 
     } 

in dem HTML-Code habe ich eine Variable mit dem Beitrag aus dem gewählten Jahr und ich möchte das Jahr nvd3-Tag (hier 2014) ändern.

{% include_container data.dict.**2014**.chart... 400 600 %} 

Ich habe versucht, verschiedene Dinge wie ... {% mit Jahr selected_year}}

{% include_container data.dict.{{ selected_year }}.chart... 400 600 %} 

oder

{% include_container data.dict.selected_year.chart... 400 600 %} 

, aber ich kann nicht herausfinden, wie das Jahr dynamisch sein kann. Danke

Antwort

1

Ich schaute auf die source code. Das Template-Tag erwartet den Namen des Containers. Von dem, was ich aus Ihrem Code sehe, jedes Mal, wenn der Benutzer ein Jahr in dem Formular wählt, das die Seite neu lädt.

Also was ich tun würde, ist in der Ansicht füllen Sie eine Variable "selected_chart" mit dem entsprechenden Container-Namen und übergeben Sie es im Kontext.

return render_to_response('multibarchart.html', {'data': data, 'form': form, 'selected_chart': CONTAINER_NAME}) 

dann in der Vorlage sollten Sie haben:

{% include_container selected_chart 400 600 %} 

Wenn Sie das Diagramm ändern müssen ohne Neuladen der Seite dann würden Sie einen anderen Ansatz brauchen. Lassen Sie mich wissen, wenn dies der Fall ist.

+0

danke. Ich versuche und lasse Sie wissen – fabvys

+0

nett. Es klappt. Danke – fabvys

+1

Kein Problem. Froh, dass ich helfen konnte. –

Verwandte Themen