我写了以下代码。但是当我转到url posts?page=1
时,它仍然显示所有Post模型对象。我该怎么办?
settings.py
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10
}
ursl.py
path('posts', views.posts_view, name='posts_view')
views.py
@api_view(['GET'])
def posts_view(request):
posts = Post.objects.all()
serializer = PostSerializer(posts, many=True)
return Response(serializer.data)
1条答案
按热度按时间5lhxktic1#
您正在使用
@api_view
编写一个基于函数的视图,因此需要手动进行分页。你可以尝试使用provided generic base api views,而不是试图重写它,如果它在你的情况下工作:要手动分页,你需要像基类一样创建和调用分页:
需要明确的是,使用@API_view确实支持使用额外装饰器的其他框架功能,例如
@permissions_classes
。装饰器不支持分页和过滤等视图级功能。