Итак, я пытаюсь использовать модуль PyChartJS, и пока у меня это есть. Это класс для PieChart:
class newPieChart(BaseChart):
def setData(self, _data: dict):
self.data.data = [_ for _ in _data.values()]
return
def setLabels(self, _labels: list):
self.labels.labels = [_ for _ in _labels]
return
type = ChartType.Pie
class labels:
labels = []
class data:
data = []
И я использую setData(), чтобы заполнить диаграмму данными
{'Allowance': 20.0, 'Bonus': 30.0, 'Other': 80.0, 'Salary': 300.0}
Теперь, когда я пытаюсь newPieChart.get(), я получаю обратно JSON, необходимый для рендеринга в JS. Вот что он возвращает:
{'type': 'pie', 'data': {'labels': [], 'datasets': [{'data': [20.0, 30.0, 80.0, 300.0]}]}, 'options': {'plugins': {}}}
Однако диаграмма не отображается, так как она отображается в моем коде JS:
{'type': 'pie', 'data': {'labels': [], 'datasets': [{'data': [20.0, 30.0, 80.0, 300.0]}]}, 'options': {'plugins': {}}}
Мой вопрос: как мне правильно отобразить эту диаграмму? Как это исправить? Вот как я реализовал это в своем коде JavaScript:
var ctx = document.getElementById('expense').getContext('2d');
var expensechart = new Chart(ctx, {{=chart}})






Я исправил проблему, вызвав встроенный помощник XML()
var expensechart = new Chart(ctx, {{=XML(chart)}})
Это устраняет проблему неправильного отображения JSON внутри HTML.