当我想对使用django_filter创建的筛选器进行分页时,我遇到了一个问题,在我的模板中,它显示了查询集和筛选器,但分页不起作用,我想知道为什么会发生这种情况,以及您是否可以帮我
我将插入代码片段,以便您可以看到
这是我的观点
我有所有必要的进口货
@method_decorator(staff_member_required, name='dispatch')
class EmployeeListView(ListView):
model = Employee
paginate_by = 4
def dispatch(self, request, *args, **kwargs):
if not request.user.has_perm('employee.view_employee'):
return redirect(reverse_lazy('home'))
return super(EmployeeListView, self).dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['filter'] = EmployeeFilter(self.request.GET, queryset = self.get_queryset())
return context
过滤器.py
import django_filters
from .models import Employee, Accident
class EmployeeFilter(django_filters.FilterSet):
class Meta:
model = Employee
fields = {
'rutEmployee' : ['startswith']
}
您应该重写
get_queryset
。这意味着您必须将筛选器放入get_queryset
中,如下所示:并在employee_list.html中使用
object_list
而不是filter
,如下所示:您也可以尝试以下方法: (我源代码中的一个片段)
在html模板中,您需要附加从视图传递到模板的querystring,下面显示了一个示例
相关问题 更多 >
编程相关推荐