Заполнение раздела цены путем выбора товара в наборе форм django

У меня есть Django formset с 6 полями ввода. Каждый раз, когда пользователь выбирает товар, в каждой строке автоматически заполняются 3 поля с именами dp_price, tp_price и mrp. Я попробовал несколько вариантов, но не смог сделать это самостоятельно. Мой набор форм выглядит следующим образом

и мой опробованный js файл

add_purchase.js

var send_data = {}

for(var i=0; i<10; i++){

$(document).ready(function (prefix) {

     $('#id_form-' +prefix+ '-product').on('change', function () {
        console.log("On Product selected")
        let id = $(this).children('option:selected').val();
        console.log(id);
        $.ajax({
            url: 'product-info',
            data: {
              'pk': id
            },
            dataType: 'json',
            success: function (data) {
                console.log(data);
                $("#id_form-"+prefix+"-dp_price").val(data.dp_price);
                $("#id_form-"+prefix+"-tp_price").val(data.tp_price);
                $("#id_form-"+prefix+"-mrp").val(data.mrp_price);
            }
        });
    })(i);
});

}

forms.py

PurchaseChildFormset = modelformset_factory(

)
PurchaseChild,

form=PurchaseChildFormCreateForm,
extra=1,
widgets={
    'product': forms.Select(attrs={'class': 'form-control', }),
    'dp_price': forms.NumberInput(attrs={'class': 'form-control', }),
    'tp_price': forms.NumberInput(attrs={'class': 'form-control', }),
    'mrp': forms.NumberInput(attrs={'class': 'form-control', }),
    'qty': forms.NumberInput(attrs={'class': 'form-control'}),
    'line_total': forms.NumberInput(attrs={'class': 'form-control'}),
},

)

Чтобы отобразить это во фронтенде на родных шаблонах django, вы только сможете сделать это: Ex Javascript

Вернуться на верх