[英]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.