Я хочу получать данные из JavaScript с помощью Django
В шаблоне есть фильтрация цен, написанная на JavaScript. Я хочу взять диапазон цен, заданный в этом фильтре с помощью dajngo и написать функцию фильтрации. Я не смог, потому что не знаю JavaScript. Как мне быть? Итак, я хочу написать функцию django, которая принимает заданные начальное и конечное значения и сортирует товары соответствующим образом.
main.js
// PRICE SLIDER
var slider = document.getElementById('price-slider');
if (slider) {
noUiSlider.create(slider, {
start: [1, 100],
connect: true,
tooltips: [true, true],
format: {
to: function(value) {
return value.toFixed(2) + '₼';
},
from: function(value) {
return value
}
},
range: {
'min': 1,
'max': 100
}
});
}
Я не знаком с noUiSlider
, но вам нужно получить значения from
и to
в Django - вы можете сделать это либо путем отправки формы при нажатии FILTER
, либо путем отправки AJAX запроса. Я предполагаю, что вы просто отправите форму в стандартном режиме отправки страницы, поскольку вы не знакомы с JS (и, следовательно, с AJAX).
def your_view(request)
filter_from = request.POST.get('slider_from')
filter_to = request.POST.get('slider_to')
YourModel.objects.filter(value__gte=filter_from, value__lte=filter_to)
...
Вам нужно будет заменить slider_from
и slider_to
на ключевые значения, которые посылаются входом слайдера в request.POST
- это будут имена самих входов. Вы можете обернуть request.POST
в оператор print
, чтобы легко увидеть, что это такое. Это просто вопрос получения значений и передачи их в функцию filter()
вашей модели.