Как обновить django vairable внутри javascript

Как мы можем получить доступ к переменной в части JS, например "{{vaiable_name}}". Как мы можем обновить значение variable_name внутри javascript?

Один из способов - внедрить небольшой Javascript через шаблонизатор Django, с подстановкой {{переменной}}.

Мой собственный файл base.html содержит

<script type="text/javascript"> $(document).ready(  function() {
    {% block onready_js %}{% endblock onready_js %}   
  }); 
</script>

и затем в любом шаблоне, расширяющем base.html, где я хочу передать значения переменных, я могу просто написать код

 {% block onready_js %}
      /* some JS with Django substitutions */
      var foo = "{{foo}}";
      ...
 {% endblock %}

Единственное, что вы должны помнить, что ваш JS не должен содержать последовательные открытые или закрытые скобки без пробела между ними!

(Если блок не определен, то в base.html определяется нулевая функция, которая будет выполнена, когда документ будет готов)

вы можете добавить тег span с id и затем нацелить id в javascript

<span id='django_variable_id'>{{variable_name}}</span>

<script>
function update_django_variable(new_var){
    /* get the span element */
    var span = document.getElementById('django_variable_id');
    /* set new var here */
    span.innerText = new_var;
}
</script>

or также будет работать, если нет других переменных с таким именем

<span id='var_{{variable_name}}'>{{variable_name}}</span>

<script>
function update_django_variable(new_var){
    /* get the span element */
    var span = document.getElementById('var_{{variable_name}}');
    /* set new var here */
    span.innerText = new_var;
}
</script>
Вернуться на верх