如何显示低于一定数量的价格?

时间:2019-04-13 19:27:14

标签: python django

我在网站上进行了过滤。有两种选择。要显示高于“ 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 个答案:

答案 0 :(得分:1)

您的表格有点过时,过滤器应检查是否有price大于或等于(__gte)给定的最低价格,并且小于或等于({{3} })超过指定的最高价格,因此:

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(price__lte=form.cleaned_data["max_price"])