Django paginator и необработанный SQL

У меня проблемы с использованием функции paginator djangoś. В этом вопросе я не могу найти решение: Django: Paginator + необработанный SQL-запрос

С Table.object.all() у меня нет проблем, но с необработанным sql я получаю сообщение об ошибке object of type 'RawQuerySet' has no len()

я тоже пробовал

num = len(list(ads)) paginator = Paginator(num, 2)

и я получаю object of type 'int' has no len(). Я попытался напечатать число, и оно содержит правильное число, поэтому я не понимаю, почему это не нравится paginator. Надеюсь, кто-то может помочь.


person Mark    schedule 18.04.2012    source источник


Ответы (1)


Решение найдено здесь: http://groups.google.com/group/django-users/browse_thread/thread/42cf7b5a88f31b9c

это означает:

paginator = Paginator((list(ads)), 10)
person Mark    schedule 19.04.2012
comment
Это может быть очень неэффективно. В обычных QuerySets paginator может использовать COUNT, LIMIT и OFFSET, чтобы получить необходимое подмножество результатов. Но в случае RawQuerySet ваше решение получит ВСЕ возможные результаты, а затем нарежет список в python. - person Beli; 06.02.2014