Как корректно отправить форму через Ajax в Django, если товары выведены через цикл в шаблоне
Всем привет! Делаю интернет магазин на Django. В шаблоне товары выведены через цикл, есть форма для отправки товара в корзину. При отправке формы через Ajax отправляется только самый первый продукт из цикла. Как это исправить? menu.html
'''
<div class="form_q_w">
<div class="form_cart_q_w"><p><form class="ajaxForm" data-product_id="{{all.id}}" data-total_price="{{cart.get_total_price}}" action="{% url 'cart:cart_add' all.id %}" method="post">
{% if all.category.name == 'Пицца' %}
{{cart_product_form.quantity}} шт.
<div class="form_hidden" style="display: none;">{{cart_product_form.weight}}</div>
{% csrf_token %}
{% else %}
{{ cart_product_form.quantity }} x {{ cart_product_form.weight }} г.
{% csrf_token %}
{% endif %}
</div>
<div class="btn_cart_form">
<p><input class="btn btn-white btn-outline-white" type="submit" onclick="" value="Добавить в корзину"></p>
</form></p>
</div>
'''
ajax.js
$(document).ready(function(){
var form = $('.ajaxForm');
form.on('submit', function(e){
e.preventDefault();
var product_id = form.data("product_id");
var quantity = document.getElementById('id_quantity').value;
var weight = document.getElementById('id_weight').value;
var data = {};
data.product_id = product_id;
data.quantity = quantity;
data.weight = weight;
var url = $(this).attr('action');
var csrf_token = $('.ajaxForm [name="csrfmiddlewaretoken"]').val();
data["csrfmiddlewaretoken"] = csrf_token;
$.ajax({
url:url,
type: 'POST',
data: data,
cache: false,
success: function (data) {
console.log(data.get_total_price);
console.log(product_id);
if (data.get_total_price){
$('.cart').text('🛒 '+ data.get_total_price + ' ₽');
}
},
error: function(){
console.log("AJAX error")
}
})
Вам нужно сделать примерно так, что б при нажатии передавалось ид товара и уже потом все остальное onclick="buyProduct({{all.id}})"
сейчас код ищет первое значение