Добавление {% csrf_token %} к вставке javascript
Все,
У меня есть всплывающее окно, которое вставляется через javascript при нажатии на кнопку:
Я пытаюсь отправить форму и продолжаю получать ошибку "CSRF-токен отсутствует или неверен." Я пытался вставить его через строку '{% csrf_token %}', но это просто оставляет строковое значение, и Django не реагирует на него.
Есть идеи, как я могу это сделать? Есть ли лучший способ?
Я не совсем уверен, есть ли какие-либо проблемы безопасности при использовании этого метода (пожалуйста, сообщите мне, если есть), но я смог инициировать {{ csrftoken }} в шаблоне, используя:
<script>
var csrftoken = '{{ csrf_token }}';
</script>
и затем передаем это значение токена в JS-функцию следующим образом:
<a onclick="loadTypeManagement({{ existingDocTypes }}, csrftoken);" id="feedbackButton" data-toggle="modal" data-target="#typeManagementModalDiv" class="hide_table_button underline_none" href="{% url 'admin:login' %}">Type Management</a>
Затем, внутри JS, я смог добавить строку:
'<input type="hidden" name="csrfmiddlewaretoken" value="' + csrftoken + '">' +
в котором хранится значение маркера.
Итак, полный JS выглядит следующим образом:
Для любопытных, эта часть используется для выпадающих элементов и не нужна для чего-либо связанного с csrf_token
for (i = 0; i < existingDocTypes.length; i++) {
var opt = document.createElement("option");
document.getElementById("m").innerHTML += '<option class="option_value" value = "' + existingDocTypes[i] + '" id="' + i + '">' + existingDocTypes[i] + '</option>';
document.getElementById("m2").innerHTML += '<option class="option_value" value = "' + existingDocTypes[i] + '" id="' + i + '">' + existingDocTypes[i] + '</option>';
}