Django Rest框架分页如何修复(未定义名称和分页)
我正在尝试为搜索查询分页。所有的导入似乎都在正确的位置,但它总是告诉我这个错误。“未定义pagination.PaginationSerializer”。我不明白为什么?因为我“从rest_framework.pagination导入PaginationSerializer”导入了它。奇怪的是,我肯定我在做一些不正确的事情。这是我的代码 注意:我的代码基于官方文档中的示例。 这是我从浏览器的回溯: 异常类型:名称/用户搜索时出错/ 异常值:未定义名称“分页” 异常位置:/var/www/api/serializers.py,第19行 视图.pyDjango Rest框架分页如何修复(未定义名称和分页),django,pagination,django-rest-framework,Django,Pagination,Django Rest Framework,我正在尝试为搜索查询分页。所有的导入似乎都在正确的位置,但它总是告诉我这个错误。“未定义pagination.PaginationSerializer”。我不明白为什么?因为我“从rest_framework.pagination导入PaginationSerializer”导入了它。奇怪的是,我肯定我在做一些不正确的事情。这是我的代码 注意:我的代码基于官方文档中的示例。 这是我从浏览器的回溯: 异常类型:名称/用户搜索时出错/ 异常值:未定义名称“分页” 异常位置:/var/www/ap
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from django.core.paginator import Paginator , EmptyPage, PageNotAnInteger
from django.shortcuts import HttpResponseRedirect
import json
from api.models import users, subjects
from api.serializers import PaginatedUserSerializer, UserKarmaSerializer
@api_view(['GET'])
def user_search(request):
"""
Url must be example (/?subject=iOS Development)
"""
if request.method == 'GET':
search_subject = request.QUERY_PARAMS.get('subject')
# Query
user_ids = subjects.objects.filter(
ss__icontains=search_subject).values('id_user')
user = users.objects.filter(pk__in=user_ids).order_by('-karma', 'rate')
# Pagination Below
paginator = Paginator(user, 20)
page = request.QUERY_PARAMS.get('page')
try:
user = Paginator.page(page)
except PageNotAnInteger:
user = Paginator.page(1)
except EmptyPage:
user = Paginator.page(Paginator.num_pages)
serializer_context = {'request': request}
serializer = PaginatedUserSerializer(user,context=serializer_context)
return Response(serializer.data, status=status.HTTP_200_OK)
from rest_framework import serializers
from rest_framework.pagination import PaginationSerializer
from api.models import users, chat, call, subjects
""" Search Tutors Based on Rate & Subjects """
# Below is line 19
class UserSearchSerializer(serializers.HyperlinkedModelSerializer):
subjects = serializers.Field(source='user_subjects')
user_rate = serializers.Field(source='rate_format')
class Meta:
model = users
fields = ('name', 'nick', 'avatar_s', 'user_rate', 'id', 'subjects', 'bio', 'experience')
class PaginatedUserSerializer(pagination.PaginationSerializer):
class Meta:
object_serializer_class = UserSearchSerializer
序列化程序.py
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from django.core.paginator import Paginator , EmptyPage, PageNotAnInteger
from django.shortcuts import HttpResponseRedirect
import json
from api.models import users, subjects
from api.serializers import PaginatedUserSerializer, UserKarmaSerializer
@api_view(['GET'])
def user_search(request):
"""
Url must be example (/?subject=iOS Development)
"""
if request.method == 'GET':
search_subject = request.QUERY_PARAMS.get('subject')
# Query
user_ids = subjects.objects.filter(
ss__icontains=search_subject).values('id_user')
user = users.objects.filter(pk__in=user_ids).order_by('-karma', 'rate')
# Pagination Below
paginator = Paginator(user, 20)
page = request.QUERY_PARAMS.get('page')
try:
user = Paginator.page(page)
except PageNotAnInteger:
user = Paginator.page(1)
except EmptyPage:
user = Paginator.page(Paginator.num_pages)
serializer_context = {'request': request}
serializer = PaginatedUserSerializer(user,context=serializer_context)
return Response(serializer.data, status=status.HTTP_200_OK)
from rest_framework import serializers
from rest_framework.pagination import PaginationSerializer
from api.models import users, chat, call, subjects
""" Search Tutors Based on Rate & Subjects """
# Below is line 19
class UserSearchSerializer(serializers.HyperlinkedModelSerializer):
subjects = serializers.Field(source='user_subjects')
user_rate = serializers.Field(source='rate_format')
class Meta:
model = users
fields = ('name', 'nick', 'avatar_s', 'user_rate', 'id', 'subjects', 'bio', 'experience')
class PaginatedUserSerializer(pagination.PaginationSerializer):
class Meta:
object_serializer_class = UserSearchSerializer
因为是作为分页序列化程序导入的,所以前面不需要分页。改为:
class PaginatedUserSerializer(PaginationSerializer)
或者,您可以更改导入:
from rest_framework import pagination
因为是作为分页序列化程序导入的,所以前面不需要分页。改为:
class PaginatedUserSerializer(PaginationSerializer)
或者,您可以更改导入:
from rest_framework import pagination
因为是作为分页序列化程序导入的,所以前面不需要分页。改为:
class PaginatedUserSerializer(PaginationSerializer)
或者,您可以更改导入:
from rest_framework import pagination
因为是作为分页序列化程序导入的,所以前面不需要分页。改为:
class PaginatedUserSerializer(PaginationSerializer)
或者,您可以更改导入:
from rest_framework import pagination