首页 > 解决方案 > 如何在 Django 中结合过滤和分页?

问题描述

我是使用 Python 编程的新手。我想将分页与过滤器结合起来,但我发现的解决方案对我不起作用。这是我的看法

视图.py

@login_required
def publication_list(request):
    f = PublicationFilter(request.GET, queryset=Publication.objects.all())

    return render(request, 'info/filter.html', {'filter':f})

过滤器.py

from registration.models import Publication
import django_filters





class PublicationFilter(django_filters.FilterSet):
    user__username = django_filters.CharFilter(lookup_expr='icontains', label='Nombre de usuario')
    title = django_filters.CharFilter(lookup_expr='icontains', label='Titulo')


    class Meta:
        model = Publication
        fields = [
        'user__username', 'title', 'estatus',
        ]

标签: pythondjangofilterpagination

解决方案


您需要像 这样实现分页代码。

您只需将第一行更改为使用.filter()而不是.all(),其余的将保持不变。


推荐阅读