Как показать цены ниже определенного числа? - PullRequest
0 голосов
/ 13 апреля 2019

Я сделал фильтрацию на моем сайте.Есть два варианта.Либо для отображения цен, которые находятся выше поля «min_price», либо для отображения цен ниже «max_price» (вы можете выбрать обе).Проблема в том, что «max_price» показывает «min_price», и я не знаю почему.

мой код forms.py

class ProductSort(forms.Form):
    min_price = forms.IntegerField(label='от', required = False)
    max_price = forms.IntegerField(label='до', required = False)

мой код views.py (показывает варианты выбора)

form = ProductSort(request.GET)
if form.is_valid():
    if form.cleaned_data["min_price"]:
        products = products.filter(price__gte=form.cleaned_data["min_price"])
    if form.cleaned_data["max_price"]:
        products = products.filter(price__gte=form.cleaned_data["max_price"])

1 Ответ

1 голос
/ 13 апреля 2019

Ваша форма немного отклонена, фильтр должен проверять наличие price s, которые больше или равны (__gte) данной минимальной цене и меньше или равны (* 1005)*), чем указана максимальная цена, поэтому:

form = ProductSort(request.GET)
if form.is_valid():
    if form.cleaned_data["min_price"]:
        products = products.filter(price__gte=form.cleaned_data["min_price"])
    if form.cleaned_data["max_price"]:
        # __lte instead of __gte
        products = products.filter(<b>price__lte</b>=form.cleaned_data["max_price"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...