1

Django で Highcharts を使用しようとしていますが、Javascript にはまったく慣れていません。

さまざまな大学の排出インベントリをグラフ化しています。ユーザーは表示する大学を選択するため、返されるデータの量はさまざまです。

各 Django 変数を Javascript 変数に変換して、アクセスできるようにしました。

{% for college in collegelist %}
    <script>
    function removeCommas(str) {
        return(str.replace(/,/g,''));
    }
    collegearray[collegecounter] = [parseInt(removeCommas("{{ college.stationarycombustion }}")), parseInt(removeCommas("{{ college.mobilecombustion }}")), parseInt(removeCommas("{{ college.processemissions }}")), parseInt(removeCommas("{{ college.fugitiveemissions }}")), parseInt(removeCommas("{{ college.scope1 }}")) ];
    collegecounter++;
    </script>
{% endfor %}

ご覧のとおり、collegearray には大学のすべてのデータ (Stationary Combustion、Mobile Combustion など) を含む配列が含まれています。

次に、Highcharts Javascript 関数には、次のような割り当てが含まれます。

series: [{
            name: 'College 1',
            data: [83.6, 78.8, 98.5, 93.4, 106.0]

        }, {
            name: 'College 2',
            data: [83.6, 78.8, 98.5, 93.4, 106.0]

        },

しかし、チャート化されるデータの量はさまざまであるため、基本的に私が書きたいのは次のようなものです:

counter = 0
for college in collegelist:
    name: collegename[counter],
    data: collegearray[counter]
    counter += 1

しかし、Javascript は、for ループを使用してこの方法で代入を処理できないと不平を言い続けています。Javascript から抜け出し、Django のテンプレート条件 {% for college in college list %} を使用し、出力を Javascript 関数に割り当てる方法はありますか? それとも他の方法ですか?これを必要以上に難しくしていませんか?

アドバイスありがとう、ブレット

要求ごとに、モデル: 私は Django-Chartit を使用していないことに注意する必要があるため、モデルから直接チャートを構築していません。

class Inventories(models.Model):
    institution = models.CharField(max_length=100)
    publicationdate = models.CharField(max_length=10)
    stationarycombustion = models.CharField(max_length=100)
    mobilecombustion = models.CharField(max_length=100)
    processemissions = models.CharField(max_length=100)
    fugitiveemissions = models.CharField(max_length=100)
    scope1 = models.CharField(max_length=100)
    purchasedelectricity = models.CharField(max_length=100)
    purchasedheating = models.CharField(max_length=100)
    purchasedcooling = models.CharField(max_length=100)
    purchasedsteam = models.CharField(max_length=100)
    scope2 = models.CharField(max_length=100)
    commuting = models.CharField(max_length=100)
    airtravel = models.CharField(max_length=100)
    solidwaste = models.CharField(max_length=100)
    wastewater = models.CharField(max_length=100)
    paperemissions = models.CharField(max_length=100)
    scope2td = models.CharField(max_length=100)
    scope3 = models.CharField(max_length=100)
    carbonoffsets = models.CharField(max_length=100)
    totalrecs = models.CharField(max_length=100)
    landsequestration = models.CharField(max_length=100)
    compostsequestration = models.CharField(max_length=100)
    gsf = models.CharField(max_length=100)
    residentialspace = models.CharField(max_length=100)
    studentfte = models.CharField(max_length=100)

    def __unicode__(self):
        return self.institution+", "+self.publicationdate
4

0 に答える 0