You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:25:23