Django: как получить значение javascript из шаблона для просмотра? - PullRequest
0 голосов
/ 19 июня 2020

В настоящее время я использую структуру Django.

Я хотел бы получить значение javascript, записанное в файле html. Я хотел бы иметь возможность отображать его в моем файле просмотра

Вот мой html файл из шаблонов папок:

<script>
var toto = "javascript";
document.write(toto)

</script>

Это мой файл просмотра:

def javascript(request):
    # print the javascript value here
    return render(request, "rh/javascript.html")

Спасибо за помощь!

1 Ответ

0 голосов
/ 19 июня 2020

Вы должны учитывать, что ваш сценарий выполняется на клиентском сайте, тогда как функция view выполняется на стороне сервера. Это одна из основных проблем, когда дело доходит до перемещения переменных с одного конца на другой.

Короче говоря:

Вам нужно будет сделать http-запрос с клиентского сайта (например, используя jQuery AJAX) для вызова view. Затем вы можете передать переменную через AJAX в функцию view и использовать ее для дальнейшего logi c.

Пример:

your. html

<script type="text/javascript">
      // A CSRF token is required when making post requests in Django
      // To be used for making AJAX requests in script.js
      window.CSRF_TOKEN = "{{ csrf_token }}";
</script>

<div id="variable">Variable</div>

javascript

(function($) {

// trigger the logic on click of the container
  $('#variable').on('click', function() {

    // assign variable
    var variable_for_view = $(this).html();

    // make http request using AJAX
    $.ajax({
      type: 'post',
      url: '/your_url/', // this is the mapping between the url and view
      data: {
        'variable': variable, // ! here is the magic, your variable gets transmitted to the server
        'csrfmiddlewaretoken': window.CSRF_TOKEN
      },
      success: function(data) {
        print(sliced_variable)
      },
    });
  });
}(jQuery));

views.py

def your_view(request):

    # Assign variable from AJAX request
    variable = request.POST.get('variable')
    print(variable)

   variable.slice(3)    

    context = {
        'sliced_variable': variable
    }    

return render(request, 'your.html', context)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...