2016-03-25 4 views
1

ajaxを使用して情報をプッシュしてDjangoに投稿しようとしています。私のモデルでは、ID、親、テキストの3つのフィールドしか使用しません。javascriptのJSONフィールドを変数に抽出する

情報をDjangoにポストしようとすると、私のモデルでは持っていない情報を持つ余分なフィールドがJSONファイルに存在するため、エラーが発生します。

フィールドID、親、およびテキストのみを私が持っているJSONデータから収集して、Djangoに正常にポストできるようにしたいと考えています。

は、ここに私の現在のコードです:

$('#jstree_demo').jstree({ 
      "core" : { 
       "animation" : 0, 
       "check_callback" : true, 
       "themes" : { "stripes" : true }, 
       'data' : { 
        "url" : "/snippets/", 
        "success": function(data){ 
        series = data; 
      }, 
        "dataType" : "json" // needed only if you do not supply JSON headers 
       } 
      }, 

      "plugins" : [ "contextmenu", "dnd", "search", "state", "types", "wholerow" ] 
     }); 
}); 


function get_tree(){ 

    var v = $('#jstree_demo').jstree(true).get_json('#', {flat:true}) 
    var mytext = JSON.stringify(v); 

    $.ajax({ 
     url:/snippets/, 
     type:"POST", 
     data:mytext, 
     contentType:"application/json; charset=utf-8", 
     dataType:"json", 

    }) 

} 


function demo_create() { 
    var ref = $('#jstree_demo').jstree(true), 
     sel = ref.get_selected(); 
    if(!sel.length) { return false; } 
    sel = sel[0]; 
    sel = ref.create_node(sel, {"type":"default"}); 
    if(sel) { 
     ref.edit(sel); 
    } 

    get_tree(); 
}; 
function demo_rename() { 
    var ref = $('#jstree_demo').jstree(true), 
     sel = ref.get_selected(); 
    if(!sel.length) { return false; } 
    sel = sel[0]; 
    ref.edit(sel); 

    get_tree(); 
}; 
function demo_delete() { 
    var ref = $('#jstree_demo').jstree(true), 
     sel = ref.get_selected(); 
    if(!sel.length) { return false; } 
    ref.delete_node(sel); 

    get_tree(); 
}; 

そして、ここで私は変数から取得する例をJSONである "MYTEXT"

[{"id":"node_one","text":"say its so","icon":true,"li_attr":{"id":"node_one"},"a_attr":{"href":"#","id":"node_one_anchor"},"state":{"loaded":true,"opened":true,"selected":false,"disabled":false},"data":{},"parent":"#","type":"default"},{"id":"some","text":"Ivan is sleepy","icon":true,"li_attr":{"id":"some"},"a_attr":{"href":"#","id":"some_anchor"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"node_one","type":"default"},{"id":"node_1","text":"Node","icon":true,"li_attr":{"id":"node_1"},"a_attr":{"href":"#","id":"node_1_anchor"},"state":{"loaded":true,"opened":false,"selected":true,"disabled":false},"data":{},"parent":"#","type":"default"},{"id":"j1_10","text":"New node","icon":true,"li_attr":{"id":"j1_10"},"a_attr":{"href":"#"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"node_1","type":"default"},{"id":"node1","text":"test worked","icon":true,"li_attr":{"id":"node1"},"a_attr":{"href":"#","id":"node1_anchor"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"#","type":"default"},{"id":"j1_1","text":"New node","icon":true,"li_attr":{"id":"j1_1"},"a_attr":{"href":"#"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"node1","type":"default"},{"id":"node2","text":"test worked 2","icon":true,"li_attr":{"id":"node2"},"a_attr":{"href":"#","id":"node2_anchor"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"#","type":"default"},{"id":"j1_9","text":"New node","icon":true,"li_attr":{"id":"j1_9"},"a_attr":{"href":"#"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"node2","type":"default"},{"id":"node3","text":"test worked yay","icon":true,"li_attr":{"id":"node3"},"a_attr":{"href":"#","id":"node3_anchor"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"#","type":"default"},{"id":"j1_2","text":"New node","icon":true,"li_attr":{"id":"j1_2"},"a_attr":{"href":"#"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"node3","type":"default"},{"id":"j1_7","text":"New node","icon":true,"li_attr":{"id":"j1_7"},"a_attr":{"href":"#"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"j1_2","type":"default"},{"id":"j1_8","text":"New node","icon":true,"li_attr":{"id":"j1_8"},"a_attr":{"href":"#"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"j1_2","type":"default"},{"id":"j1_3","text":"New node","icon":true,"li_attr":{"id":"j1_3"},"a_attr":{"href":"#"},"state":{"loaded":true,"opened":true,"selected":false,"disabled":false},"data":{},"parent":"node3","type":"default"},{"id":"j1_4","text":"New node","icon":true,"li_attr":{"id":"j1_4"},"a_attr":{"href":"#"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"j1_3","type":"default"},{"id":"j1_6","text":"New node","icon":true,"li_attr":{"id":"j1_6"},"a_attr":{"href":"#"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"j1_4","type":"default"},{"id":"j1_5","text":"New node","icon":true,"li_attr":{"id":"j1_5"},"a_attr":{"href":"#"},"state":{"loaded":true,"opened":false,"selected":false,"disabled":false},"data":{},"parent":"j1_3","type":"default"}] 

私はjsTreeと連携してこれを実行しようとしています。どんな助けも大歓迎です。

+1

これでDjangoエラーが発生しますか?あなたはDjango側でリクエストを処理する方法と、このエラーがどこから来ているのかを投稿できますか? – serg

+0

JSONがモデル内のDjangoに渡そうとしていたすべてのフィールドを指定していなかったため、コンソールでエラーが発生しましたが、特定のフィールドのみが必要なので、エラーが発生しました。私の質問は、私はエラーを取得しないように私はそれらのフィールドを取得する方法に関係していました。 – Kevin

答えて

0

stringifyの代わりにvar mytext = JSON.parse(v);を使用してください。

Json配列オブジェクトを返します。今度はid、parent、textを配列から取り出し、各変数を温度変数にすることができます。

ここで、この新しい変数を文字列化してデータを渡します。

これは、あなたの問題を解決するのに役立ちます。

+0

遅く更新して申し訳ありません、私はこれを試します - ありがとう – Kevin

関連する問題