Доступ к шаблону Django {{Variable}} из JavaScript - PullRequest
10 голосов
/ 27 июля 2010

Я пытался получить доступ к переменной шаблона django в HTML-странице встроенного JavaScript, он работает нормально.Но если я включу js, используя <script src="..>, то это не сработает.Это ограничение или я что-то не так делаю?Я очень ценю вашу помощь.

Ответы [ 2 ]

12 голосов
/ 27 июля 2010

Включенный Javascript не обрабатывается процессором шаблонов Django на сервере, поэтому он не будет работать.Если вам необходимо передать информацию через шаблон во включенные файлы Javascript, попросите ваш шаблон создать небольшой блок <script>, в котором объявлена ​​некоторая глобальная переменная, содержащая эти переменные шаблона.Затем ваш чистый файл Javascript может получить значения, ища глобальный объект, созданный этим <script> из шаблона.

5 голосов
/ 27 июля 2010

Ответ Пойнти правильный. Я часто нахожу этот фильтр полезным для этой ситуации:

@register.filter(name='json')
def _json(obj):
  #remember to make sure the contents are actually safe before you use this filter!
  return safestring.mark_safe(json.dumps(obj)) 

тогда в теге <script> я могу сделать что-то вроде этого:

window.g_details = {{ details|json }};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...