【问题标题】:Django Filter query setDjango过滤器查询集
【发布时间】:2017-02-09 13:12:23
【问题描述】:

我想添加一个按名称、价格等对产品进行排序的按钮。

这是我的看法:

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})

如何在点击按钮时按名称、价格等进行排序?

【问题讨论】:

    标签: django django-views django-queryset


    【解决方案1】:

    首先你需要知道排序不同于过滤器

    这是解决方案 如果您从他的操作中在 html 中添加按钮将被重定向到您名为 product_list

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

    在你看来

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

    添加这个

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

    你可以达到你的目标 希望这对你有帮助 如果您有任何疑问,请保持联系 谢谢

    【讨论】:

    • 把你的包含按钮动作的html发给我
    • 是的,你弄错了,我要求你将它添加到表单中
      {%csrf_token%}
    • 好的,请将答案标记为正确答案
    猜你喜欢
    • 2019-07-29
    • 2014-06-12
    • 2020-08-22
    • 2019-04-15
    • 2011-09-29
    • 2023-04-11
    相关资源
    最近更新 更多