Django全局名称'PageNotAnInteger'未定义

伦敦AppDev

我有一个奇怪的问题。我有一个视图,它从Django REST Framework通过序列化器和分页器返回一些JSON。

我的视图如下所示(返回“国家”模型中的所有对象):

@api_view(['GET'])
def country_list(request):
    """
    List all countries
    """
    if request.method == 'GET':

        geoname_ids = request.QUERY_PARAMS.get('geoname_ids')
        queryset = Countries.objects.all()
        paginator = Paginator(queryset, request.QUERY_PARAMS.get('limit'))
        page = request.QUERY_PARAMS.get('page')

        try:
            countries = paginator.page(page)
        except PageNotAnInteger:
            #If page is not an integer, deliver first page.
            countries = paginator.page(1)
        except EmptyPage:
            #If page is out of range
            #Delivery last page of results
            countries = paginator.page(paginator.num_pages)

        serializer_context = {'request': request}
        serializer = PaginatedCountrySerializer(countries, context=serializer_context)
        return Response(serializer.data)

这很好。

但是,我需要返回具有特定ID的国家/地区,我正在尝试这样做:

@api_view(['GET'])
def country_list(request):
    """
    List all countries
    """
    if request.method == 'GET':

        geoname_ids = request.QUERY_PARAMS.get('geoname_ids')
        queryset = Countries.objects.filter(country_geoname_id=geoname_ids)
        paginator = Paginator(queryset, request.QUERY_PARAMS.get('limit'))
        page = request.QUERY_PARAMS.get('page')

        try:
            countries = paginator.page(page)
        except PageNotAnInteger:
            #If page is not an integer, deliver first page.
            countries = paginator.page(1)
        except EmptyPage:
            #If page is out of range
            #Delivery last page of results
            countries = paginator.page(paginator.num_pages)

        serializer_context = {'request': request}
        serializer = PaginatedCountrySerializer(countries, context=serializer_context)
        return Response(serializer.data)

这显然是我用geonames_ids参数调用的URL。它给出一个错误:global name 'PageNotAnInteger' is not defined然后引用异常。

我的代码有问题吗?在更改查询集之前,为什么PageNotAnInteger可以正常工作找不到意义。

阿什维尼乔杜里(Ashwini Chaudhary)

您应该先导入它:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

名称错误全局名称未定义

来自分类Dev

NameError:全局名称'numpy'未定义

来自分类Dev

Python:未定义全局名称“ maximum”

来自分类Dev

未定义全局名称“ inf”

来自分类Dev

未定义全局名称“ reverse”

来自分类Dev

python全局名称未定义

来自分类Dev

未定义全局名称“ X”

来自分类Dev

未定义全局名称“ Prefetch”

来自分类Dev

未定义全局名称“ pk”

来自分类Dev

Python-未定义全局名称

来自分类Dev

NameError:名称未定义全局声明

来自分类Dev

NameError:全局名称“隐身”未定义

来自分类Dev

python wxpython全局名称未定义

来自分类Dev

未定义全局名称“等级”

来自分类Dev

未定义NameError全局名称'ImageDraw'

来自分类Dev

Python:未定义全局名称“ foobar”

来自分类Dev

未定义全局名称“ inf”

来自分类Dev

Python:isinstance()未定义的全局名称

来自分类Dev

Python 2.7全局名称未定义

来自分类Dev

python全局名称未定义

来自分类Dev

NameError:全局名称“ q”未定义

来自分类Dev

未定义全局名称“距离”

来自分类Dev

Python-未定义全局名称

来自分类Dev

即使全局名称错误也未定义

来自分类Dev

“未定义全局名称”错误

来自分类Dev

未定义全局名称“模拟”

来自分类Dev

NameError:全局名称“文本”未定义

来自分类Dev

名称未定义

来自分类Dev

NameError:全局名称“名称”未定义(已定义)。