javascript - Django 休息框架 : custom pagination next/previous links

标签 javascript django vue.js django-rest-framework pagination

在后端作为 DEFAULT_PAGINATION_CLASS我正在使用内置的 PageNumberPagination . 由于我使用 vue.js 的原因与 fetch , 我不需要像 django-rest-framework 提供的那样传递整个 url :

"count": 5,
"next": "http://127.0.0.1:8000/api/something/?page=2",
"previous": null

但只有基本 url 之后的部分,例如:

/api/something/?page=2

或者只是页码,这样我就可以构建自己的端点,例如:

if (!pageNumber) {
  let endpoint = "/api/something/"
} else {
  let endpoint = "/api/something/" + "?page=" + pageNumber;
}

使用 django 进行分页的正确方法是什么?和像 vue 这样的 JavaScript 框架使用 bootstraps pagination component

最佳答案

在 View 中覆盖您的分页响应,随心所欲地改变。

 def get_paginated_response(self, data):
        return Response({
            'links': {
                'next': self.get_next_link(),
                'previous': self.get_previous_link()
            },
            'current_page': int(self.request.query_params.get('page', 1)),
            'total': self.page.paginator.count,
            'per_page': self.page_size,
            'total_pages': round(self.page.paginator.count/self.page_size, 1),
            'data': data,
        })

关于javascript - Django 休息框架 : custom pagination next/previous links,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59596342/

相关文章:

javascript - 使用 jquery 获取 ul 中每个 li 的 Id 或 Name

javascript - 如何在数组中插入带有数组的不同对象

php - jquery 帮助获取表行的 Id

django - 反向、reverse_lazy、解析和重定向之间有什么区别? [ Django ]

django - 表单错误 - __init__() 获得意外的关键字参数 'prefix'

javascript - vuejs中的Array.prototype.splice和arr.splice有什么区别?

javascript - 对于 In 与闭包和函数创建问题

python - 具有中间模型的 Django Manytomany 过滤器

vue.js - vue v-if 开始隐藏

vue.js - Vue3 - 组合函数与从 'module' 导入 { functionObject }