如何在Django REST Framework中修改'results'字段名称?
自定义DRF分页的
results字段名 这个需求实现起来很简单,只需要自定义一个分页类,重写对应的属性就行,具体步骤如下:
1. 创建自定义分页类
继承DRF的PageNumberPagination,然后重写results_field属性,把它改成你想要的名称(比如foo_results、authors):
from rest_framework.pagination import PageNumberPagination class CustomPagination(PageNumberPagination): # 替换成你需要的自定义字段名 results_field = "foo_results" # 可选:设置默认每页显示数量,也可以在视图里单独配置 page_size = 10
2. 在视图集中配置分页类
如果你是用通用视图集(比如ModelViewSet),只需要在视图集里指定pagination_class为你刚创建的自定义分页类:
from rest_framework import viewsets from .models import YourModel from .serializers import YourModelSerializer from .pagination import CustomPagination class YourModelViewSet(viewsets.ModelViewSet): queryset = YourModel.objects.all() serializer_class = YourModelSerializer # 绑定自定义分页类 pagination_class = CustomPagination
可选:全局配置分页类
如果你希望整个项目的所有分页视图都使用这个自定义字段名,可以在项目的settings.py里配置DRF的默认分页类:
REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'your_app_name.pagination.CustomPagination', 'PAGE_SIZE': 10 }
这样配置完成后,接口返回的格式就会变成你想要的样子,比如:
{ "count": 1, "next": null, "previous": null, "foo_results": [ { "id": 1, "foo": "foo", "bar": "bar" } ] }
内容的提问来源于stack exchange,提问作者T-101
相关产品推荐
相关产品推荐

