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

В Django, есть несколько способов передать переменную из шаблона в JavaScript. Рассмотрим некоторые из них:

1. Используйте встроенный в Django фильтр json_script. Он преобразует Python-объект в строку JSON и обернет ее в тег <script>, чтобы вы могли легко получить доступ к данным в JavaScript.

В шаблоне Django:

    {{ my_variable | json_script:"my-data" }}

В JavaScript:

    var myData = JSON.parse(document.getElementById('my-data').textContent);

2. Передавайте переменную через атрибут data-* элемента HTML. Установите значение атрибута с помощью переменной Python, а затем прочитайте его в JavaScript.

В шаблоне Django:

    <div id="my-div" data-my-variable="{{ my_variable }}"></div>

В JavaScript:

    var myVariable = document.getElementById('my-div').dataset.myVariable;

3. Используйте AJAX-запрос для получения данных из Django-представления и передачи их в JavaScript. В этом случае вы можете выполнить запрос со страницы и получить переменную в ответе сервера.

В шаблоне Django:

    <script>
    $.ajax({
        url: "{% url 'my_view' %}",
        success: function(data) {
            var myVariable = data.my_variable;
            // Делайте что-то с переменной в JavaScript
        }
    });
    </script>

В Django представлении:

    from django.http import JsonResponse

    def my_view(request):
        my_variable = "Hello, world!"
        return JsonResponse({'my_variable': my_variable})

Таким образом, существует несколько способов передать переменную из шаблона Django в JavaScript. Выберите то решение, которое наиболее подходит для вашего конкретного случая и требований приложения.