ИЗБЕГАТЬ EVAL
На мой вопрос был дан ответ, и я в конечном итоге использовал eval, но после некоторого поиска того, что делает и может сделать eval, я в итоге не использовал его и вместо этого использовалнайденная здесь альтернатива: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#Do_not_ever_use_eval!
В моем приложении я строю целые параметры диаграммы в бэкэнде и возвращаю его в виде ответа json
def get_chart_data(request):
chart = {
'title': {
'text': ''
},
'xAxis': {
'categories': [],
'title': {
'text': ''
},
'type': 'category',
'crosshair': True
},
'yAxis': [{
'allowDecimals': False,
'min': 0,
'title': {
'text': ''
}
}, {
'allowDecimals': False,
'min': 0,
'title': {
'text': ''
},
'opposite': True
}],
'series': [{
'type': 'column',
'yAxis': 1,
'name': '',
'data': []
}, {
'type': 'line',
'name': '',
'data': []
}, {
'type': 'line',
'name': '',
'data': []
}]
}
return JsonResponse(chart)
И затем получаюданные с использованием ajax и использовать ответ для данных
Highcharts.chart('dashboard1', data);
Пока я в порядке с этим, но у меня возникли проблемы, если я хочу использовать функции highcharts как частьпараметры, например, установка цвета текста с использованием Highcharts.getOptions().colors[0]
,
'title': {
'text': 'Rainfall',
'style': {
'color': Highcharts.getOptions().colors[0]
}
},
Если я не ставлю кавычки при создании параметров в views.py
, это будет рассматриваться как код и результат Pythonоднако в случае ошибки, если я добавлю к ней кавычки, в javascript это будет рассматриваться как строка, которая не будет работать.
Возможно ли это?или я должен просто создать опции в javascript и просто получить часть данных в бэкэнде, а не все.