猿问

Django:如何保存 mxGraph,以便用户刷新图形时保持不变?(异步)

我将用户创建的当前 mxGraph 转换为存储在数据库 (ajax.js) 中的 XML。我在我的视图中将此作为 JSONResponse 返回到我的 ajax 请求 (views.py)。


存储在数据库中的数据会保存,因为我在 Django 管理页面中检查过,并且每个保存按钮都会更新 xml。


这一切正常,但问题是当我刷新页面时,创建的图形不会留在页面上。


ajax.js


var button = mxUtils.button('Save', function()

            {

                //var url = "{%url'login'%}"

                //var url = "{% url 'myapp:productdetail' %}";

                //location.href = '/saveData/'

                var encoder = new mxCodec();

                var node = encoder.encode(graph.getModel());

                var xml = mxUtils.getPrettyXml(node); 

                var csrftoken = getCookie('csrftoken');


                $.ajax({


                    type: "POST",

                    url: "/saveData/",

                    data: { "xml": xml},

                    headers:{

                        "X-CSRFToken": csrftoken

                    },

                    success: function(data){

                        //console.log("data" + data[0])

                        //console.log(graph)

                        //var xmlDoc = data[0]


                        var xmlDoc = mxUtils.parseXml(data[0]);

                        //var xmlDoc = mxUtils.load("/saveData/").getXml();

                        //console.log("xmlDoc " + xmlDoc)

                        var node = xmlDoc.documentElement;

                        //console.log("node " + node)

                        var dec = new mxCodec(node.ownerDocument);

                        //console.log("dec " + dec)

                        //console.log("graph model " + graph.getModel())

                        dec.decode(node, graph.getModel());


                    }

                });

模型.py


class Member(User):

data = models.TextField(null=True)


def __str__(self):

    return self.username

PS 我不知道为什么我的 JS 没有颜色,我添加了 javascript 标签但它不起作用......提前抱歉


喵喵时光机
浏览 287回答 1
1回答

万千封印

我必须像上面那样创建一个 Ajax GET 请求并解码 mxGraph。
随时随地看视频慕课网APP

相关分类

Python
我要回答