Как из Django передать переменную в Javascript

Хочется: views.py:

request.session['id'] = id

JS:

var id = sessionStore.getItem('id');

Но JS говорит id=null

Добавил в шаблон html:

<script>var id={{ id }}</script>

JS её видит... но как-то не по фэншую такой способ... Как сделать правильно?


Ответы (1 шт):

Автор решения: MilkyWay

Вы пытаетесь использовать COOKIE. Что как правило ведёт к нарушениям безопасности. По это причине Django не даёт простого способа передавать данные в "печеньках", вместо этого обменивается с браузером только 32-х битным хэшем сессии а всё остальное решается в backend. Если что то нужно передать на "фронт" используйте контекст шаблона.

#Сохраняет в базу данных
request.session['id'] = id
#Берёт в свою очередь из браузера, по тому и не работает
var id = sessionStore.getItem('id');

НО. Если всё же так хочется что неможется, вот подсказка:

response = HttpResponse("F*ck your safety Django")
response.set_cookie('id', '123')
return response
→ Ссылка