小编Waz*_*azy的帖子

对过滤器进行分页

我有一个过滤器,其中包含汽车品牌和型号的相关下拉列表。由于我不想在一页上显示所有内容,因此我添加了分页器。问题是过滤器工作正常,但无法在页面中保留

当过滤器处于活动状态时,网址看起来像

/cars/?manufacture=2&model=2 如果我转到下一页,我得到的只是/cars/?page=2

我想要类似的东西/cars/?manufacture=2&model=2?page=2

如果我打印{{ posts|length }}它确实会返回正在过滤的正确数量的项目,因此那里没有问题

我认为问题出在模板中的下一个和上一个按钮,因为它们不会传递下一页以外的任何参数。我如何将过滤器带入分页器。

看法

def allCarsView(request):

    model = Post
    
    myFilter = carFilter(request.GET, queryset=Post.objects.all())
    posts = myFilter.qs
    
    page = request.GET.get('page', 1)
    paginator = Paginator(posts.order_by('date_posted'), 2)
    page_obj = paginator.get_page(page)
    page_range = paginator.get_elided_page_range(number=page)
    
    context = {
        'posts':posts, 'myFilter':myFilter, 'page_range': page_range, 
        'page': page, 'paginator': paginator, 'page_obj': page_obj
    }
    return render(request, 'blog/cars.html', context)    
Run Code Online (Sandbox Code Playgroud)

html 分页器

<nav aria-label="Page navigation example " class="paginator">
<nav aria-label="Page navigation example " class="paginator">
    <ul class="pagination justify-content-center">
        <li class="page-item">
            {% if page_obj.has_previous …
Run Code Online (Sandbox Code Playgroud)

django django-filter django-pagination

6
推荐指数
1
解决办法
517
查看次数

标签 统计

django ×1

django-filter ×1

django-pagination ×1