2012-06-13 2 views
0

Я новичок в Django + Ajax. Моя проблема: я не могу получить значение из моего запроса ajax POST. Я использую jquery post.Django ajax, передающий переменную на виды

Моя задача - сортировать элемент перетаскиваемого списка. Перетаскивание не является проблемой. Получение значений от 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']}>"

вот мой Аякса:

$(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 

Может кто-нибудь помочь мне?

Спасибо!

ответ

1

Сообщение об ошибке показывает, что не так - вы ищете ключ ages, но вы отправляете что-то под названием ages[] с некоторыми дополнительными квадратными скобками.

Если вы поместили эти скобки в имя поля, они вам не нужны - это PHP-ism. (Возможно, это не ваша ошибка: jQuery, как известно, сам их добавляет.) В любом случае вам нужно будет использовать request.POST.getlist(fieldname), чтобы получить список из нескольких значений, связанных с этим ключом.

+0

спасибо! это работает! 'Request.POST.getlist ('возраст []')' – justin

Смежные вопросы