【问题标题】:extjs getting data from django rest apiextjs 从 django rest api 获取数据
【发布时间】:2019-03-20 15:34:26
【问题描述】:

我正在尝试使用 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

如何从请求 url 中删除 root/?_dc=1553095552422,或者我在这里遗漏了什么以便发送正确的请求 url?

【问题讨论】:

    标签: django rest api extjs


    【解决方案1】:

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

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

    3 - 在代理对象中添加一个 api 属性,如下所示:

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

    【讨论】:

    • 将类型:“rest”更改为:“ajax”。您使用的是哪个版本的 ExtJS?
    • 不错!我使用此信息编辑了问题,以便您可以接受它作为答案。
    猜你喜欢
    • 2018-11-10
    • 2017-10-30
    • 2022-01-24
    • 2021-10-02
    • 1970-01-01
    • 2018-05-11
    • 2022-07-04
    • 2017-05-26
    • 2015-07-05
    相关资源
    最近更新 更多