Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ';第'页;对象没有属性';有序';例外情况_Python_Django_Pagination - Fatal编程技术网

Python ';第'页;对象没有属性';有序';例外情况

Python ';第'页;对象没有属性';有序';例外情况,python,django,pagination,Python,Django,Pagination,我需要为我的modelformset_工厂分页,但我遇到以下异常: Django Version: 1.6.2 Exception Type: AttributeError Exception Value: 'Page' object has no attribute 'ordered' 我认为: BrandFormSet = modelformset_factory(Brand, form=BrandFormList, extra=0, **kw) paginator, brand

我需要为我的modelformset_工厂分页,但我遇到以下异常:

Django Version: 1.6.2
Exception Type: AttributeError
Exception Value:    
'Page' object has no attribute 'ordered'
我认为:

BrandFormSet = modelformset_factory(Brand, form=BrandFormList, extra=0, **kw)

paginator, brands = paginate(request, Brand.objects.filter(shop=shop), 10)
print type(Brand.objects.filter(shop=request.user.shop))
print type(brands)
分页功能代码:

from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

def paginate(request, object_list, per_page):
    paginator = Paginator(object_list, per_page)

    page = request.GET.get('page')
    try:
        objects = paginator.page(page)
    except PageNotAnInteger:
        objects = paginator.page(1)
    except EmptyPage:
        objects = paginator.page(paginator.num_pages)

    return paginator, objects
现在我认为:

BrandFormSet = modelformset_factory(Brand, form=BrandFormList, extra=0, **kw)

paginator, brands = paginate(request, Brand.objects.filter(shop=shop), 10)
print type(Brand.objects.filter(shop=request.user.shop))
print type(brands)
产出:

<class 'django.db.models.query.QuerySet'>
<class 'django.core.paginator.Page'>


我不知道此时该怎么办。

这里的问题是,您在使用
品牌
(一个
页面
)的上下文中,需要
查询集

似乎分页和表单集并不是为了协同工作而设计的。从源代码看,它看起来像是
品牌。object\u list
可能仍然是
QuerySet
。如果是这样,请在之前使用
品牌的地方使用


提供了一个将两者结合使用的黑客解决方案,但效率很低。(它对数据库进行一次访问以获取所需的项目ID,然后构造一个新的
QueryList
,其中明确包含这些ID。)

使用brands.object\u list时,我遇到了一个新错误:异常值:一旦获取了一个切片,就无法对查询重新排序。@Adam:Hmm,这强化了我的感觉,即这两个功能并不是为了协同工作而设计的。我没有比我链接的答案更好的主意了,他只是从头开始创建了一个新的查询集。。。