2014-09-21 3 views
0

Я pratice, как использовать Ajax в Джанго
Я размещаю img_number к def update(request) когда щелкните на фотографию И не знает, почему Аякс не может получить возвращаемое значение (2)
Он всегда предупреждает «об ошибке»как использовать AJAX пост в Джанго

Пожалуйста, помогите мне, как правильно его использовать в django Спасибо.

list.html:

<script type="text/javascript"> 
$(document).ready(function() { 
    $.ajaxSetup({ 
     data: { csrfmiddlewaretoken: '{{ csrf_token }}' }, 
    }); 

    $(".pic_elect").click(function(){ 
     var img_number = $(this).attr("img_number"); 
     $.ajax({ 
      url: 'update/', 
      data: {"img_number":img_number, 
      }, 
      type: 'POST', 
      async: false, 
      dataType: 'json', 
      error: function(){ 
       alert("error") 
       window.location.reload(); 
      }, 
      success: function(dataArr){ 
       if(dataArr == 2){ 
        alert('good job!'); 
       }else if(dataArr==6){ 
       /* jump to another.html */ 
       }else{ 
        alert('系統忙碌中,請稍後再試。'); 
        window.location.reload(); 
       } 
      } 
     });});}); 
</script> 
<body> 
.... 
{% for sh in shop.images %} 
<a class="pic_elect" href="#" img_number={{sh.path}}><img src="http://test/image_store/{{ sh.path }}" ></a> 
{% endfor %} 
</body> 

views.py

def update(request): 
    if request.is_ajax(): 
     # travel = Traveltime.objects.filter(title=request.POST['title']) 
     # travel.update(image_elect=equest.POST['img_number']) 
     return 2 

Firebug сказал ошибка:

500 INTERNAL SERVER ERROR 
AttributeError at /filter/travel/update/ 
'int' object has no attribute 'get' 

ответ

1

Просмотров всегда должен возвращать объект HttpResponse. Вам нужно обернуть ваши данные.

return HttpResponse(2) 

Для более сложных данных, сериализации в JSON до создания ответа - в 1,7 раза, есть класс JsonResponse, чтобы сделать это для вас.

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