0

Django + Ajax は初めてです。私の問題は、ajaxPOSTリクエストから値を取得できないことです。を使用していjquery postます。

私の仕事は、ドラッグ可能なリスト項目をソートすることです。ドラッグアンドドロップは問題ありません。POSTリクエストから値を取得することが問題です。戻るMultiValueDictKeyError

"Key 'ages' not found in <QueryDict: {u'action': [u'updateRecords'], u'ages[]': [u'80', u'81', u'79', u'82', u'83', u'84', u'85', u'86']}>"

ここに私のajaxがあります:

$(function() { 
    var url = ""; /* won't place it*/
    $("ul#ages").sortable({ opacity: 0.6, cursor: 'move', update: function() {
            var order = $(this).sortable("serialize") + '&action=updateRecords';
            $.post(url, order, function(theResponse){
                alert('success');
            });
        }
    });
});

ここにビューがあります:

if request.is_ajax():
        if request.POST['action'] == "updateRecords":
            update_record_array = request.POST['ages']

            order_counter = 1;

            for record_id in update_record_array:
                Age.objects.filter(id=record_id).update(order_id=order_counter)
                order_counter += 1

誰でも私を助けることができますか?

ありがとう!

4

1 に答える 1

1

エラーメッセージは何が間違っているかを示しています.keyを探していますが、余分な角括弧でages呼び出されたものを送信しています.ages[]

これらの括弧をフィールド名に入れている場合、それらは必要ありません。これは PHP 主義です。request.POST.getlist(fieldname)(それはあなたのせいではないかもしれません: jQuery はそれら自身を追加することが知られています。) いずれにせよ、そのキーに関連付けられた複数の値のリストを取得するために使用したいと思うでしょう。

于 2012-06-13T21:07:37.560 に答える