Django Paginating 和 order_by 同时

问题描述 投票:0回答:1
class QueryLists(LoginRequiredMixin, ListView):
    paginate_by=4
    def get_queryset(self):
        queryset=super().get_queryset()
        queryset=queryset.filter(user=self.request.user)
        search_filter=self.request.GET.get("search-area")
        if search_filter:
            queryset=queryset.filter(name__icontains=search_filter)
        order_filter=self.request.GET.get("order-by")
        if order_filter:
            queryset=queryset.order_by(order_filter)
        return queryset
    
    def get_context_data(self, **kwargs):
        context=super().get_context_data(**kwargs)
        get_copy=self.request.GET.copy()
        if 'page' in get_copy:
            print("hello")
            get_copy.pop('page')
        context['get_copy']=urlencode(get_copy)
        return context["get_copy"]

我编写此代码,当我第二次或第三次转到其他页面时,网址不会弹出页面,如下所示 /?page=1&page=2 我希望页面仅出现一次。我该如何解决这个问题?

django-views
1个回答
0
投票

类 QueryLists(LoginRequiredMixin, ListView): 分页依据=4 def get_queryset(self): queryset=super().get_queryset() queryset=queryset.filter(user=self.request.user) search_filter=self.request.GET.get("搜索区域") 如果搜索过滤器: queryset=queryset.filter(name__icontains=search_filter) order_filter=self.request.GET.get("order-by") 如果订单过滤器: queryset=queryset.order_by(order_filter) 返回查询集

def get_context_data(self, **kwargs):
    context=super().get_context_data(**kwargs)
    get_copy=self.request.GET.copy()
    if 'page' in get_copy:
        print("hello")
        get_copy.pop('page')
    context['get_copy']=urlencode(get_copy)
    return context

我写了这个,但我有同样的问题

© www.soinside.com 2019 - 2024. All rights reserved.