Как отправить переменную из шаблона Django для просмотра - PullRequest
1 голос
/ 21 июня 2020

Я пытаюсь отправить номер со страницы шаблона (. 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 %}"

Хотя я делал много исследования, я не мог найти никакого решения. Может ли кто-нибудь мне помочь?

Лучшее.

...