2013-11-15 4 views
2

Я использую Django и отправляю переменную из views.py в свой шаблон. Как я могу получить эту переменную в моем JS-файле?Как получить переменную python в JS Django

return render(request, 'dashboard/dashboard.html', {"value":123}) 

Теперь я хочу, чтобы получить переменную value в моем файле JS. Как мне это сделать? Внутри шаблона, т. Е. HTML-файла, легко, просто сделайте {{значение}}, и вы получите его напечатанным, но я хотел немного поиграть с этой переменной и вставить его в свой JS-файл. Хо, я это делаю?

+1

Включите переменную в 'div value_value', а затем просто выполните' get_by_id' ?! –

+0

Почему downvote ??? –

+0

@AshishNitinPatil - Bhai thats jugaaad (надеюсь, вы понимаете): D Я хочу что-то стандартное. :) –

ответ

3

простой способ это печать в <script> тэгом:

<script> 
    var value = {{ value|escapejs }}; 
</script> 

Отредактировано:

Если вам нужен этот вар в виде отдельного файла вам нужно сделать вид для визуализации файл JS.

+0

Он хочет его в своих ранее существовавших сценариях, которые отдельно хранятся из шаблонов. –

+0

Он может использовать этот var в любой области, например: 'namespace.value = value || null; ' – Carlangueitor

+2

Нет, нет. Никогда не связывайте JavaScript с языком шаблонов Django. Делает код очень тесно связанным и таким образом загромождает глобальное пространство имен (окно), чего вы действительно не хотите. –

2

Используйте поле ввода,

<input type="hidden" class="hidden" value="{{ value }}" /> 

тогда ваш JavaScript

var val = document.querySelector(".hidden").value; 

или вы можете поместить его в любом HTML элемент и запроса для значения.

+0

полезный подход - привязать его к атрибуту 'data-'. обычно, когда вы хотите это сделать, значение все равно связано с определенным элементом DOM. – Eevee

+0

Помимо использования атрибута 'data-', и вы обновляете его через jQuery (например), тогда исходное значение кэшируется jQuery, так что это облом. –

Смежные вопросы