Django过滤查询集

时间:2017-02-09 13:12:23

标签: django django-views django-queryset

我想添加一个按名称,价格等对产品进行分类的按钮。

这是我的观点:

def product_list(request, category_slug=None):
    category = None
    categories = Category.objects.filter(man=True)
    products = Product.objects.filter(section='man', available=True)
    flt = Product.objects.filter(section='man', available=True).order_by('-name')
    products = products.filter(category=category)
    return render(request,
                  'shop/product/list.html',
                  {'category': category,
                   'categories': categories,
                   'products': products,
                   'flt': flt})

如何点击按钮按名称,价格等排序?

1 个答案:

答案 0 :(得分:1)

首先你需要知道Sort与Filter

不同

这个解决方案 万一你从他的行动中添加html按钮将重定向到你的名为 product_list

的视图
<button type="submit" name="sortByName"></button>

在你看来

这一行之后     products = products.filter(category = category)

添加此

if 'sortByName' in request.GET:
    products=products.order_by('-name')

你可以实现目标 希望这对你有所帮助 如果您有任何疑问,请保持联系 感谢