Передача переменной django в javascript - PullRequest
1 голос
/ 29 апреля 2019

Я хочу передать переменную django, которая представляет собой словарь, подобный этому {u'testvar1 ': u'1', u'testvar2 ': u'38', u'testvar3 ': u'160'} в javascript. Как я могу это сделать? Я не могу найти решение для того же. Я новичок в Django, так что извините за этот вопрос Noobie.

Ответы [ 4 ]

2 голосов
/ 29 апреля 2019

Во-первых, тот факт, что у вас есть строки, начинающиеся с u, означает, что вы используете Python 2.7, который является не только чрезвычайно старой версией Python, но также означает, что вы используете устаревшие версии Django, поскольку более поздние версии поддерживают только Python 3. Вы должны обновить оба сразу.

Чтобы ответить на ваш вопрос, используйте для этого JSON.

return render(request, 'my_template.html', {'data': json.dumps(data)}

и в вашем шаблоне:

var data = JSON.parse("{{ data|safe }}")
0 голосов
/ 29 апреля 2019

Сначала возьмите этот словарь в шаблоне Django и установите для него значение одного из элементов html, например:

<input type="hidden" id="dict" value="{{your dict}}">

Теперь возьмите значение элемента html в javascript.

In java script:
<script>
var dict = document.getElementById("dict").value;

</script>
0 голосов
/ 29 апреля 2019
def foo_view(request, slug):
    context_data = {u'testvar1': u'1', u'testvar2': u'38', u'testvar3': u'160'}
    return render(request, 'foo_template.html', context_data)

#foo_template.html
<script type="text/javascript">
   var a = "{{testvar1}}";
</script>
0 голосов
/ 29 апреля 2019

Вы передаете переменные через контекст, а затем можете использовать их в своем скрипте в шаблоне django

def myview():
    ...
    return render(request, 'my_template.html', {'testvar1': testvar1}


<script>
    var testvar1 = {{ testvar1 }}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...