highcharts и django передавая словарь - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь структурировать свои данные для отображения на круговой диаграмме.

У меня есть таблица с булевыми столбцами: корни, кости, осадок.

Я могу отфильтровать данныев словарь (в views.py):

a = Fraction.objects.values('roots').filter(roots=True)
b = Fraction.objects.values('bone').filter(bone=True)
c = Fraction.objects.values('sediment').filter(sediment=True)
dataset4 = {"roots": a, "bone": b, "sediment": c}

возвращается 'dataset4': dataset4,

В коде html highchart я обычно добавляю данные:

#views.py
dataset4 = Fraction.objects.values('roots')

#html
  <script>
    Highcharts.chart('container4', {
      chart: {type: 'pie'},
      title: {text: 'Sample Remains'},
      credits: {enabled: false},
      xAxis: {
        categories: [
        {% for entry in dataset4 %}'C {{ entry.roots }}'{% if not forloop.last %}, {% endif %}{% endfor %}
        ]
      },
      series: [{
        name: 'Botany Records',
        data: [
        {% for entry in dataset4 %}
        {{ entry.roots }}
        {% if not forloop.last %},
        {% endif %}
        {% endfor %}
        ],
        color: 'green'
      }]

Как передать объект словаря, а не набор запросов?

1 Ответ

0 голосов
/ 13 февраля 2019

Вам нужно изменить запрос, чтобы получить общее количество корней, костей и отложений, а затем передать эти значения в шаблон:

a = Fraction.objects.filter(roots=True).count()
b = Fraction.objects.filter(bone=True).count()
c = Fraction.objects.filter(sediment=True).count()
dataset4 = {"roots": a, "bone": b, "sediment": c}

Затем в шаблоне вы сможетесоздайте данные для серии, повторяя каждый элемент в словаре, например:

series: [{
    name: 'Botany Records',
    data: [
        {% for name, count in dataset4.items %}
            {name: '{{ name }}', y: {{ count }} }
            {% if not forloop.last %},{% endif %}
        {% endfor %}
    ],
    color: 'green'
}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...