Я пытаюсь отправить номер со страницы шаблона (. html) в views.py. Для этого я сделал следующее:
urls.py
path('video/<int:value>', views.process_number, name='video_lab'),
. html
<div class="frame">
<span id="currentFrame">0</span>
</div>
<div class="btn-group" >
<button id="stop_bttn_id" class="btn btn-primary btn-lg" name="stop_bttn">Take Number</button>
</div>
<script type="text/javascript">
function btn_click() {
var x = document.getElementById('currentFrame').textContent
fetch("{% url 'video_lab' value=x %}", {
method: "POST",
headers: { "X-CSRFToken": '{{csrf_token}}'},
body: 'true'
}).then(response => {
return response.json()
})
}
document.getElementById('stop_bttn_id').addEventListener('click', btn_click);
</script>
views.py
@login_required
def process_number(request, value: int):
json_response = {....}
return JsonResponse(json_response)
Вот в чем проблема. Если я напрямую отправлю число вместо переменной, то число можно будет отправить в views.py.
fetch("{% url 'video_lab' 5 %}"
Однако, если я попытаюсь отправить переменную, я получаю сообщение об ошибке:
NoReverseMatch в / video /
Реверс для 'video_lab' с ключевыми аргументами '{' value ':' '}' не найден. Пробовал 1 шаблон (ы): ['video / (? P [^ /] +) $']
Я также пробовал:
fetch("{% url 'video_lab' x %}"
Хотя я делал много исследования, я не мог найти никакого решения. Может ли кто-нибудь мне помочь?
Лучшее.