Как увеличить количество деталей заказа без обновления

Я новичок в Django, я создаю страницу оформления заказа и когда пользователь при изменении диапазона ввода числа enter image description here он отправляется на сервер, но это работает для первого. Я думаю, потому что я установил одинаковый id для всех входов и я не могу его изменить, потому что он находится в теге for

как я могу это исправить?

Джанго часть

class Ajax_Handler(View):
    def get(self,request):
        if request.is_ajax():            
          count=request.GET['count']
          return JsonResponse({'count':count},status=200) 


  

ajax часть

$(document).ready(function(){
            var crf=$('input[name=csrfmiddlewaretoken]').val();
            $("#icount").change(function(){
               $.ajax({
                   url:'/adding',
                   type:'get',
                   data:{
                       count:$('#icount').val(),
                       
                   },
                   success:function(respond){
                        $('#icount').val(respond.count)
                   }
               });

            });
       });
    

html часть

<tbody>
{% for order in order.orderdetail_set.all %}        
 <tr>
<td class="product-image">
 {% thumbnail order.product.image "100x100" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}
</td>
<td class="product-name"><a href="products/{{order.product.id}}">{{order.product.title}}</a></td>
<td class="product-price">{{order.product.price|intcomma:False}}تومان</td>
                                            
<td class="product-quantity">                                          
<label>تعداد</label>
<input type="hidden" name="order_id{{order.id}}" value="{{order.id}}">
 <input name='count' id='icount' min="1" max="100" value="{{order.count}}" type="number">
                                                 
</td>
<td class="product-total">{{order.totalprice|intcomma:False}}</td>
<td class="product-remove"><a href="delete/{{order.id}}"><i class="fa fa-trash-o"></i></a></td>
</tr>
                                        
{% endfor %}
                                        
                                       
</tbody>

Вы можете сделать что-то вроде этого

<input name='count' id='icount' min="1" max="100" value="{{order.count}}" type="number" onchange="handleOrderCount({{order.id}})">

function handleOrderCount(OrderId){
    $.ajax({
        url:'/adding',
        type:'PUT',
        data:{
            'OrderId': OrderId,
            'csrfmiddlewaretoken': '{{ csrf_token }}',
            'count': $('#icount').val(),
        },
        success:function(respond){
            $('#icount').val(respond.count)
        }
        error:function(respond){
            console.log(respond)
        }
    });
}

Если вы хотите изменить что-либо в базе данных, не используйте метод GET, он используется для получения данных из базы данных или сервера, используйте PUT для обновления каких-либо объектов

POST - create
GET - read
PUT - update
DELETE - delete
и в ваших представлениях вы можете получить следующее

class Ajax_Handler(View):
    def get(self,request):
        if request.is_ajax() and request.method == "POST":            
          count = request.POST['count']
          # can filter object and update it like this 
          # order_id = request.POST['OrderId']
          # Order.object.filter(id=order_id)
          return JsonResponse({'count':count},status=200) 
Вернуться на верх