Я работаю над диаграммой, которая показывает данные на приборной панели.
он берет данные из базы данных и пытается создать из них json, но в html-коде это не работает. показано Uncaught SyntaxError: Неожиданное завершение ввода JSON в JSON.parse()
это представление
def dashboard(request):
mood_data = MentalHealthSurvey.objects.values(
'mood').annotate(count=Count('mood'))
stress_data = MentalHealthSurvey.objects.values(
'stress_level').annotate(count=Count('stress_level'))
# Serialize data for JavaScript
mood_data_json = json.dumps(list(mood_data))
stress_data_json = json.dumps(list(stress_data))
context = {
'mood_data_json': mood_data_json,
'stress_data_json': stress_data_json,
}
return render(request, 'employees/dashboard.html', {'context': context})
это код шаблона.
{% extends 'employees/base_generic.html' %}
{% block title %}
Employee Dashboard
{% endblock %}
{% block content %}
Survey Data
{% endblock %}
{% block scripts %}
const moodData = JSON.parse('{{ mood_data_json|safe }}')
console.log('moodData:', moodData)
const stressData = JSON.parse('{{ stress_data_json|safe }}')
const moodLabels = (moodData || []).map((item) => item.mood || 'Unknown')
const moodCounts = (moodData || []).map((item) => item.count || 0)
const stressLabels = (stressData || []).map((item) => item.stress_level || 'Unknown')
const stressCounts = (stressData || []).map((item) => item.count || 0)
const moodChart = new Chart(document.getElementById('moodChart'), {
type: 'pie',
data: {
labels: moodLabels,
datasets: [
{
data: moodCounts,
backgroundColor: ['#28a745', '#ffc107', '#dc3545', '#17a2b8', '#6f42c1']
}
]
}
})
const stressChart = new Chart(document.getElementById('stressChart'), {
type: 'bar',
data: {
labels: stressLabels,
datasets: [
{
data: stressCounts,
backgroundColor: ['#28a745', '#ffc107', '#dc3545']
}
]
}
})
{% endblock %}
Подробнее здесь: https://stackoverflow.com/questions/792 ... nonymous-a
Неперехваченная синтаксическая ошибка: неожиданное завершение ввода JSON в JSON.parse (<anonymous>) на панели мониторинг ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение