@xibolba

Как передать переменную из шаблона Django в JS?

Как можно реализовать, можно ли пользоваться способом ниже?
views.py
def page(request):
    return render(
        request,
        'page.html', {
            'val': reverse('value_url'),
        }
    )

page.html
<input name="val_name" value="{{ val }}" type="hidden">
<script src="script.js"></script>

script.js
const value = document.querySelector('[name=val_name]').value;
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
@serhiops
Python/JavaScript/C++
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
exibite777
@exibite777
Ведущий системный аналитик
Шаблонизатору абсолютно все равно в какую часть шаблона обрабатывать
Пример 1
<script type="text/javascript">
        if (history.pushState) {
        var baseUrl = window.location.protocol + "//" + window.location.host + window.location.pathname;
        var newUrl = baseUrl + `?cat={{ cat_id_join }}{% if tag.0 != "" %}&tag={{ tagstr_param }}{% endif %}&page={{ page }}&size={{ size }}&order={{ order }}&direction={{ direction }}`;
        history.replaceState(null, null, newUrl);
             }
    </script>
Пример 2
<script type="text/javascript">
    function catSelect(event) {
        var cat_id = $(event.currentTarget).attr('cat_id');
        if (event.ctrlKey) {
window.location.href = "/publication/?cat={{ cat_id_join }},"  + cat_id + "{% if tag.0 != "" %}&tag={{ tagstr_param }}{% endif %}&page=1&size={{ size }}&order={{ order }}&direction={{ direction }}"
                    return;
                }
        if (event.altKey) {
window.location.href = "/publication/?cat={{ cat_id_join }},"  + cat_id + "(del){% if tag.0 != "" %}&tag={{ tagstr_param }}{% endif %}&page=1&size={{ size }}&order={{ order }}&direction={{ direction }}"
                    return;
                }      	
window.location.href = "/publication/?cat="  + cat_id + "&page=1&size={{ size }}&order={{ order }}&direction={{ direction }}"
  }
</script>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы