объект типа ‘метод’ не имеет функции len()

#django

#django

Вопрос:

Я добавляю разбивку на страницы в django, она выдает ошибку «объект типа ‘method’ не имеет функции len()»

     allCategoryValue = category.objects.all
    paginators = Paginator(allCategoryValue, 3)
    pages = request.GET.get('abc')

    try:
        allCategory = paginators.page(pages)
    except PageNotAnInteger:
        allCategory = paginators.page(1)
    except EmptyPage:
        allCategory = paginators.page(paginator.num_pages)
    context = {'allCategory':allCategory}   
    return render(request,'addCategory.html',context)
  

Комментарии:

1. all() — это метод .. вызовите его, и он должен сработать

Ответ №1:

category.objects.all Это метод. Итак, вместо записи

 allCategoryValue = category.objects.all
  

Вы должны написать

 allCategoryValue = category.objects.all()
  

Теперь он вызывает метод и возвращает ожидаемые результаты.

Комментарии:

1. Это решило мою проблему, спасибо! Перед внедрением разбивки на страницы он также принимал allCategoryValue = category.objects.all . Почему?

2. вы назначали метод category.objects.all . Это не то поведение, которое вы хотели, но оно синтаксически правильное. Поскольку этот ответ решает вашу проблему, не стесняйтесь пометить его как решение

3. на самом деле я не тот, кто задал вопрос, но все равно спасибо 🙂