2011-09-02 10 views
4

WebページからDjangoビューにデータを送信して、シリアル化されたjsonとしてデータベースに保存しようとしています。可能であれば、私はdjangoのQueryDictオブジェクトを避け、simplejsonでリクエストを読み込み、データベースにフラット化して保存したいと考えています。データを送るための最善の方法は何ですか?シンプソンがそれを平らにすることができますか?DjangoのQueryDictリストの制限を避ける

var languages = {}; 
languages['english'] = ['mark', 'james']; 
languages['spanish'] = ['amy', 'john']; 

$.ajax({ 
    type: 'POST', 
    url: '/save/', 
    data: languages, 
    dataType: 'json' 
}); 

if request.is_ajax() and request.method == 'POST': 
    for key in request.POST: 
     print key 
     valuelist = request.POST.getlist(key) 
     print valuelist 

答えて

1

あなたがhttp://code.google.com/p/jquery-json/を試してみて、クライアント側でJSON文字列を作ることができます。ちょうどビューで

var languages = {}; 
languages['english'] = ['mark', 'james']; 
languages['spanish'] = ['amy', 'john']; 

var json_languages = $.toJSON(languages);//'{"plugin":"jquery-json","version":2.2}' 

// '{"spanish": ["amy", "john"], "english": ["mark", "james"]}' 

$.post('/save/', {data: json_languages}); 

if request.is_ajax() and request.method == 'POST': 
    data = request.POST.get('languages') 

それはベストプラクティスではないが、それは時々私のために正常に動作します。

関連する問題