Python 如何在django中实现排序和过滤?
我是django的新手,我正在从事一个项目,在这个项目中,我需要让用户按品牌或制造商对列出的结果进行排序或筛选,并使用价格进行排序(从最高到最低,反之亦然)。我应该如何处理这个问题?您可以这样做:Python 如何在django中实现排序和过滤?,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我是django的新手,我正在从事一个项目,在这个项目中,我需要让用户按品牌或制造商对列出的结果进行排序或筛选,并使用价格进行排序(从最高到最低,反之亦然)。我应该如何处理这个问题?您可以这样做: query = Goods.objects sort_by = request.GET.pop('sort_by', 'id') for k, v in request.GET.items(): query.filter(k=v) result = query.order
query = Goods.objects
sort_by = request.GET.pop('sort_by', 'id')
for k, v in request.GET.items():
query.filter(k=v)
result = query.order_by(sort_by)
在ListView类中,可以重写get queryset函数,如果要传递逻辑,可以使用这些参数重写查询。例如:
class ExampleListView(ListView):
model = example
def get_queryset(self):
queryset = Goods.objects.all()
if self.request.GET.get("manufacturer"):
selection = self.request.GET.get("browse")
queryset = Goods.objects.filter(manufacturer = selection)
return queryset
或者您可以使用开箱即用的解决方案来满足django上的过滤需求,并通过定义filterview从模型字段中添加过滤器。您当前如何显示产品列表?我当前使用的是基于类的
ListView
,但我愿意接受任何建议,包括将我的产品显示方式更改为功能视图,我对这两者都很满意。