我正在尝试通过此链接进行分页和阅读。
Pagination in Django-Rest-Framework using API-View
我需要有下一个,之前的分页网址。问题是,当我打电话给这个时,
pagination_class = settings.DEFAULT_PAGINATION_CLASS
它说
'设置'对象没有属性'DEFAULT_PAGINATION_CLASS'
我需要导入什么?还是安装?
Models.py
class CarView(APIView):
permission_classes = ()
def get(self, request):
""" Get all car """
car = Car.objects.all()
# paginator = PageNumberPagination()
serializer = CarSerializer(car)
serialized_car = CarSerializer(car, context={"request": request})
# serializer = CarSerializer(car[0])
return Response(serialized_car.data)
Serializers.py
class CarSerializer(serializers.ModelSerializer):
photo_url = serializers.SerializerMethodField('get_photo_url')
class Meta:
model = Car
fields = ('id','name','price', 'photo_url')
def get_photo_url(self, car):
request = self.context.get('request')
photo_url = car.photo.url
return request.build_absolute_uri(photo_url)
settings.py
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 100,
'DEFAULT_AUTHENTICATION_CLASSES':
('rest_framework.authentication.OAuth2Authentication',
'rest_framework.authentication.SessionAuthentication'),
'DEFAULT_MODEL_SERIALIZER_CLASS':
'rest_framework.serializers.ModelSerializer',
'DEFAULT_PERMISSION_CLASSES':
('rest_framework.permissions.IsAdminUser',)
}
答案 0 :(得分:2)
您的设置文件不包含DEFAULT_PAGINATION_CLASS
的定义,它包含REST_FRAMEWORK
的定义,而DEFAULT_PAGINATION_CLASS
是其中的一部分。
访问设置
如果您需要访问REST的值 在您的项目中框架的API设置,您应该使用 api_settings对象。例如。
from rest_framework.settings import api_settings
print api_settings.DEFAULT_AUTHENTICATION_CLASSES
api_settings对象将检查任何用户定义的设置,以及 否则跌倒 回到默认值。任何使用字符串导入路径的设置 引用一个类会自动导入并返回 引用的类,而不是字符串文字。
您应该可以访问api_settings.DEFAULT_PAGINATION_CLASS