Как сохранить значение ползунка диапазона (форма множественного ввода) в Django - PullRequest
0 голосов
/ 02 июня 2019

У меня есть ползунок диапазона в виде одного файла моей формы. Я могу обновить значение элемента с помощью js. Отправка состояния флажков работает, однако по некоторым причинам я не могу получить значение ползунка диапазона.

Вот мой шаблон:

<form method="POST">
    {% csrf_token %}
    <table id="levels">
        <label class="container">Easy
        <input type="checkbox" name="checks" value="1">
        <span class="checkmark"></span></label>
        <!--you get the idea-->
    </table>
     <input type="range" min="1" max="120" value="120" class="form-control-range" id="time_slider">
    <b> <span id="slider_value" ></span></b> min.
<input type="submit" id="update" name = "update" value="Filter">
</form>
<script>
        var slider = document.getElementById("time_slider");
        var output = document.getElementById("slider_value");
        output.innerHTML = slider.value;
        slider.oninput = function() {
            output.innerHTML = this.value;
        }
    </script>

и мой view.py:

def item_list(request):

    items = Items.objects.all()

    if request.POST:
        if 'update' in request.POST:
            check_list = request.POST.getlist('checks')
            time = request.POST.get('slider_value')
            if check_list:
                items=items.filter(level__in=check_list)
            if time:
                items=items.filter(time__lte=time)

Если я распечатаю check_list , то я отмечу все флажки. Слайдер отзывчивый, скрипт работает, но никакое значение не отправляется на мой взгляд. Все, что я получаю, это «Нет». Переключение на time_slider тоже не помогает. Что я не так сделал?

1 Ответ

0 голосов
/ 02 июня 2019

Дайте вашему диапазону ввести имя атрибута.Поскольку вы уже проверяете slider_valu в своем бэкэнд-коде, вы можете изменить свой код так:

<input name="slider_value" type="range" min="1" max="120" value="120" class="form-control-range" id="time_slider">
...