Django отправляет данные в Javascript в шаблоне - PullRequest
0 голосов
/ 26 августа 2018

Я хочу создать очень простой сетевой график для некоторых ссылок между извлеченными мною документами и отобразить его в существующем приложении Django.Я посмотрел на кучу интеграций Боке / Джанго и тому подобное, но ничего не кажется подходящим.Поэтому я решил пойти дальше и попробовать D3.Я не знаю Javascript.Я скопировал шаблон, представленный здесь: http://bl.ocks.org/mbostock/2706022, и это хорошо для моих целей.Все, что мне нужно сделать, это предоставить свои собственные данные.Я могу создать список словарей в представлении и передать их как контекст.Я могу получить доступ к этому контексту в шаблоне с помощью {{data}}.Однако то, что я не знаю, как сделать, это передать это в JavaScript.Это соответствующая часть, которую мне нужно изменить:

var links = [
  {source: "Microsoft", target: "Amazon", type: "licensing"},
  {source: "Microsoft", target: "HTC", type: "licensing"},
  {source: "Samsung", target: "Apple", type: "suit"},
  {source: "Motorola", target: "Apple", type: "suit"},
  {source: "Nokia", target: "Apple", type: "resolved"},
...
  {source: "Nokia", target: "Qualcomm", type: "suit"}
];

Это похоже на список словарей.Но я не знаю, там есть некоторые голые слова, так что я не уверен, как Javascript видит эту вещь и как преобразовать контекст Python во что бы то ни было.Я представляю что-то вроде

var links = <cast>({{data}})

Как мне реализовать это, чтобы я мог передать этот код D3 своим собственным данным?

1 Ответ

0 голосов
/ 26 августа 2018

Вы можете создать свой список словарей и передать его в шаблон как JSON .
Затем проанализировать строку JSON в javascript.

В pythonиспользуйте data = json.dumps(your_list_of_dict) и в javascript используйте var links = JSON.parse('{{data}}');.Возможно, вам придется сделать что-то еще для потенциальных проблем с кавычками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...