TypeError: объект типа 'Listeningfilter' не имеет len()
эта ошибка появляется при использовании django-filter с пагинацией.
это мой код filter.py, view.py. Мне нужно добавить пагинацию к django-фильтру, чтобы отображать данные в html-таблице. ошибка проявляется в следующем Listening_filter = paginator.get_page(page_number) line.
class Listeningfilter(django_filters.FilterSet):
listentime = django_filters.DateFromToRangeFilter(
label='By Date Range',
method='filter_by_range',
widget=RangeWidget(attrs={'class': 'datepicker', 'type': 'date'})
)
class Meta:
model = Listening
fields = [
'listentime',
'serviceshortcode',
]
def filter_by_range(self, queryset, name, value):
listenTime_from = value.listenTime_from
listenTime_to = value.listenTime_to
return queryset.filter(transaction_time__gte=listenTime_from, transaction_time__lte=listenTime_to)
def listeningReportView(request):
Listening_filter = ''
form = ListeningSearchForm(request.POST or None)
if request.method == 'POST':
listenTime_from = request.POST.get('listenTime_from')
listenTime_to = request.POST.get('listenTime_to')
serviceCode = request.POST.get('serviceCode')
Listening_filter = Listeningfilter(
request.GET,
queryset = Listening.objects.filter(listentime__lte=listenTime_to, listentime__gte=listenTime_from,
serviceshortcode=serviceCode).order_by('listeningid'),
)
# pagination
paginator = Paginator(Listening_filter , 2)
page_number = request.GET.get('page')
try:
Listening_filter = paginator.get_page(page_number)
except EmptyPage:
Listening_filter = paginator.page(paginator.num_pages)
if not Listening_filter:
messages.error(request, "no data availabe")
context = {
'form': form,
'Listening_filter': Listening_filter,
}
return render(request, 'charge/listening.html', context)