2016-03-31 10 views
0

Ajaxを使用してDjangoに投稿し、JSON情報をデータベースに保存しようとしています。 これは、文字列化されて送信されたオブジェクトが1つしかない場合に機能しますが、別のオブジェクトを追加すると、400の不正リクエストエラーが発生します。これは私がモデル/ビューの設定を行っている方法に起因すると思われますか? JSON複数のJSONオブジェクトを400の不正リクエストエラーなしで渡す方法

var testData2 = '[{"id" : "Home", "parent" : "#", "text" : "Home"}, {"id" : "node3", "parent" : "#", "text" : "test worked yay"}, {"id" : "node2", "parent" : "Home", "text" : "hmm. weird"}]'; 
"変更を保存" ボタンにリンクされ

$("#postChange").click(function(){ 
    $.ajax({ 
     url:/snippets/, 
     type:"POST", 
     data:testData2, 
     contentType:"application/json; charset=utf-8", 
     dataType:"json", 

    }) 
}); 

Djangoのモデル

from django.db import models 

class StoringJSON(models.Model): 
    id = models.TextField(primary_key='true', default='node_1') 
    parent = models.CharField(max_length=30, default='#') 
    text = models.CharField(max_length=30, default='Node') 

Djangoのビュー

:ここ

は私のコードです

シリアライザ:

from rest_framework import serializers 
from treetool.models import StoringJSON 

class TreeSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = StoringJSON 
     fields = ('id', 'parent', 'text') 

し、さらにコンテキストのために、私はjsTree jQueryプラグインでこれを使用しています。

ご協力いただきありがとうございました。私に手伝っていただくためにさらに情報が必要な場合は、すぐに対応いたします。

答えて

0

複数をシリアル化する場合は、のチェック内でmany=TrueTreeSerializerに再度渡す必要があります。

また、primary_key='true'を渡すことはまったく問題ではなく、primary_key=Trueと書かれています。

+0

残念ながら、many = Trueは機能していないようです。私はprimary_keyを修正しました。 TreeSerializerの内容は – Kevin

+0

ですか? – dreamriver

+0

今すぐ上の内容を追加しました。 – Kevin

関連する問題