rest_framework_django 学习笔记五(过滤、排序、分页)
from rest_framework import generics, filters, pagination
from myapp.models import MyModel
from myapp.serializers import MyModelSerializer
# 自定义分页类
class MyPagination(pagination.PageNumberPagination):
page_size = 10
page_size_query_param = 'page_size'
max_page_size = 100
# 视图类
class MyModelListView(generics.ListAPIView):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
filter_backends = [filters.DjangoFilterBackend]
filterset_fields = ['field1', 'field2']
pagination_class = MyPagination
# 使用上述视图类,客户端可以通过以下方式进行过滤、排序和分页:
# 过滤:
# ?field1=value1&field2=value2
# 排序:
# ?ordering=field1
# 分页:
# ?page=1&page_size=10
这个代码实例展示了如何在Django REST framework中使用过滤、排序和分页功能。我们定义了一个自定义分页类MyPagination
,并在视图类MyModelListView
中使用它。同时,我们设置了filter_backends
和filterset_fields
来启用过滤功能。这些都是学习笔记的核心内容。
评论已关闭