有没有办法使用django的内置分页对rawqueryset进行分页? 当我把它投射到列表时,它会在我的脸上抛出一个错误... TypeError:期望的字符串或Unicode对象,找到NoneType。有办法解决这个问题吗?
答案 0 :(得分:15)
我设法使用以下方法实现它:
paginator = Paginator(files, 12)
paginator._count = len(list(files))
django.core.paginator.py中的代码:
在raw_queryset上的len不起作用但是将实际的paginator对象转换为列表可以在Django 1.3中找到我的工具
答案 1 :(得分:5)
您可以手动为RawQuerySet对象设置属性计数:
items = Item.objects.raw("select * from appitem_item")
def items_count():
cursor = connection.cursor()
cursor.execute("select count(*) from appitem_item")
row = cursor.fetchone()
return row[0]
items.count = items_count
表示@Rockallite
>>> class A():
... def b(self):
... print 'from b'
...
>>>
>>> (A()).b()
from b
>>> def c():
... print 'from c'
...
>>> a = A()
>>> a.b = c
>>> a.b()
from c
答案 2 :(得分:-1)
qs.filter(**pfilter).distinct().extra(select={'test': 'COALESCE(`psearch_program`.`eu_price`, 999999999)'}).extra(order_by=['test'])