首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用django-rest-framework和ng-admin分页

如何使用django-rest-framework和ng-admin分页
EN

Stack Overflow用户
提问于 2018-01-02 02:12:32
回答 1查看 130关注 0票数 1

很抱歉,这是一个愚蠢的问题,因为它已经在文档中讨论过了,但是我无法让它工作(我是AngularJS的新手)。

我试图在django-rest框架的基础上使用ng-admin为我的数据库编写一个接口。问题是ng-admin中的默认分页类似于_page=1&_perPage=30,而在django-rest-框架中则是?limit=30&offset=1。因此,当ng-admin试图获取它时,它会收到一个301响应。文件中说:

例如,要在整个应用程序中使用偏移量和限制(而不是_page和_perPage ),请使用以下代码: RestangularProvider.addFullRequestInterceptor(function(element,(‘RestangularProvider’,function(RestangularProvider) {myApp.config操作,什么,url,标头,参数,httpConfig) { if (操作== 'getList‘& what == 'entityName') { params.offset = (params._page - 1) * params._perPage;params.limit = params._perPage;删除params._page;删除params._perPage;}返回{ params: params };});});

问题是,我不知道如何将其具体地合并到代码中,即:

代码语言:javascript
复制
var myApp = angular.module('myApp', ['ng-admin']);
myApp.config(['NgAdminConfigurationProvider', function (nga) {
    var admin = nga.application('My First Admin')
        .baseApiUrl('http://localhost:8000/CSP_site/'); 
    var algae = nga.entity('algae');
    algae.listView().fields([
        nga.field('name'),
        nga.field('id'),
    ]);
    admin.addEntity(algae);
    nga.configure(admin);
}]);

任何提示都将不胜感激。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-02 02:27:54

这应该是为了你:

代码语言:javascript
复制
var myApp = angular.module('myApp', ['ng-admin']);
myApp.config(['NgAdminConfigurationProvider', 'RestangularProvider', function (nga, RestangularProvider) {
    var admin = nga.application('My First Admin')
        .baseApiUrl('http://localhost:8000/CSP_site/'); 
    var algae = nga.entity('algae');
    algae.listView().fields([
        nga.field('name'),
        nga.field('id'),
    ]);
    admin.addEntity(algae);
    nga.configure(admin);

    RestangularProvider.addFullRequestInterceptor(function(element, operation, what, url, headers, params, httpConfig) {
        if (operation == 'getList' && what == 'algae') {
            params.offset = (params._page - 1) * params._perPage;
            params.limit = params._perPage;
            delete params._page;
            delete params._perPage;
        }
        return { params: params };
    }); 
}]);

在数组的第二个索引中添加RestangularProvider,将其作为.config函数中的第二个参数注入。

其余的是复制粘贴,除了what == 'entityName',它变成了what == 'algae',因为algae是您在上面添加的实体。

我希望这能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48054826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档