Как передать данные словаря вchart.js в django?Python

Программы на Python
Ответить
Anonymous
 Как передать данные словаря вchart.js в django?

Сообщение Anonymous »


Я хочу получить отчет по диаграмме из моей модели, но не могу понять, как передать данные из словаря в диаграмму с помощьюchart.js?

вот моя модель:

класс Book(models.Model): число = модели.CharField(_("число"), max_length=255) title = models.CharField(_("title"), max_length=255) subtitle = models.CharField(_("subtitle"), max_length=255, null=True,) авторы = models.TextField(_("авторы"), null=True,) издатель = models.CharField(_("издатель"), max_length=255, null=True,) Published_date = models.DateField(_("дата публикации"), null=True,) категория = модели.CharField(_("категория"), max_length=255, null=True,) distrubution_expense = models.FloatField(_("расходы на распространение")) защита __str__(сам): вернуть себе.заголовок защита get_absolute_url(self): returnverse('book_detail', args=[str(self.id)]) И я считаю, что я использую набор запросов для подсчета количества повторений категорий:

класс CategoryChartListView(generic.ListView): модель = Книга template_name = 'pages/chart_category.html' защита get_context_data(self, **kwargs): context = super(CategoryChartListView, self).get_context_data(**kwargs) context["dictCategory"] = Book.objects.values('категория').annotate(count=Count('категория')) вернуть контекст также это словарь, который я получаю из приведенного выше набора запросов:

{'category': 'Бизнес-аналитика', 'count': 336} {'категория': 'Этика данных', 'количество': 389} {'категория': 'визуализация', 'количество': 314} {'категория': 'статистика', 'количество': 428} {'категория': 'НЛП', 'количество': 368} {'категория': 'Язык', 'количество': 1} {'категория': 'питон', 'количество': 373} {'категория': 'математика', 'количество': 379} {'категория': 'глубокое обучение', 'количество': 364} {'категория': 'SQL', 'количество': 403} {'категория': 'Python', 'количество': 80} {'категория': 'R Studio', 'количество': 246} {'категория': 'наука о данных', 'количество': 395} {'категория': нет, 'количество': 0} и шаблон:

{%блокировать контент%} {%контент блока%} {%блокировать скрипты%} // функция jquery $(документ).ready(функция(){ var ctx = document.getElementById('myChart').getContext('2d'); вар myChart = новая диаграмма (ctx, { тип: 'пончик', данные: { метки: [{%for data in dictCategory%} {{ data.keys }}, {%endfor%}] //проходим по набору запросов, наборы данных: [{ метка: 'Количество пользователей', данные: [{%for data in dictCategory%}{{ data.values ​​}},{%endfor%}], фоновый цвет: [ 'rgba(255, 99, 132, 0,2)', 'rgba(54, 162, 235, 0,2)', 'rgba(255, 206, 86, 0,2)', 'rgba(75, 192, 192, 0,2)', 'rgba(153, 102, 255, 0,2)', 'rgba(255, 159, 64, 0,2)' ], цвет границы: [ 'rgba(255, 99, 132, 1)', 'rgba(54, 162, 235, 1)', 'rgba(255, 206, 86, 1)', 'rgba(75, 192, 192, 1)', 'rgba(153, 102, 255, 1)', 'rgba(255, 159, 64, 1)' ], ширина границы: 1 }] }, параметры: { Весы: { й: { начатьАтЗеро: правда } } } }); }); {%endblock скрипты%} Я использую этот код, но ничего не получаю.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»