extjs从Django Rest API获取数据

时间:2019-03-20 15:34:27

标签: django rest api extjs

我正在尝试使用Extjs从Django Rest API获取数据。我的数据代表一棵与自身具有一对一关系的树。我有这个模型:

Ext.define('mypackages.model.MyData', {
    extend: 'Ext.data.Model',
    idProperty: 'myid',
    fields: [
        {
            name: 'name',
            type: 'string',
            mapping: 'name'
        },
        {
            name: 'family_name',
            type: 'string',
            mapping: 'family_name'
        }
    ]
});

这是我的商店:

Ext.define('mypackages.store.MyData', {
    extend: 'Ext.data.TreeStore',
    alias: 'store.files',
    model: 'mypackages.model.MyData',
    autoLoad: true,
    proxy: {
        type: "rest",
        url: "/myurl/",
        reader: {
            type: 'json'
        },
        actionMethods: {
            read: 'GET'
        },
        extraParamas:{
            'myid': ''
        }
    },
    constructor: function (config) {
        config = Ext.apply({
            root: Ext.clone(this.rootData)
        }, config);

        this.callParent([config]);
    }
});

该api可以按预期工作,但是,当我运行它并且进入浏览器的网络检查器时,由于以下原因,我可以看到404:

http://127.0.0.1:8000/myurl/root/?_dc=1553095552422

如何从请求网址中删除root/?_dc=1553095552422,或者我想在这里丢失什么,以便发送正确的请求网址?

1 个答案:

答案 0 :(得分:1)

1-删除代理对象中的url属性;

2-将类型:“休息”更改为类型:“ ajax”;

3-像这样在代理对象内添加api属性:

api: {
            read: 'GETURL',
            create: 'POSTURL',
            update: 'PUTURL',
            destroy: 'DELETEURL'
        }