簡體   English   中英

如何在Django中實現排序和過濾?

[英]How do i implement sorting and filtering in django?

我是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_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添加過濾器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM