Моя модель:
class Stock_total(models.Model):
purchases = models.ForeignKey(Purchase,on_delete=models.CASCADE,null=True,blank=False,related_name='purchasetotal')
stockitem = models.ForeignKey(Stockdata,on_delete=models.CASCADE,null=True,blank=True,related_name='purchasestock')
quantity_p = models.PositiveIntegerField(default=0)
rate_p = models.DecimalField(max_digits=10,decimal_places=2,default=0.00)
disc_p = models.DecimalField(max_digits=10,decimal_places=2,default=0)
total_p = models.DecimalField(max_digits=10,decimal_places=2,default=0.00,null=True,blank=True)
Эта модель выполняет inline_formset
с моделью Purchase
.
Так как каждый знает, что идентификатор полей в inline_form
не одинаков для каждого поля, его число увеличивается по мере того, как мы опускаемся или добавляем форму.
Например:
id
для поля формы quantity_p
в 1-й строке формы равно id_purchasetotal-0-Quantity_p
, а во второй строке формы - id_purchasetotal-1-Quantity_p
(** Обратите внимание число меняется по мере того, как мы увеличить строку формы)
Мой вопрос заключается в том, как перебрать id
набора форм в jquery, потому что мне нужно выполнить некоторые вычисления в моей форме:
Я хочу выполнить что-то подобное, но внутри цикла for:
<script type="text/javascript">
$(document).ready(function(result){
if($("#id_purchasetotal-0-Disc_p").val() != ''){
$('#id_purchasetotal-0-Quantity_p, #id_purchasetotal-0-rate_p, #id_purchasetotal-0-Disc_p').on('change', function() {
$('#id_purchasetotal-0-Total_p').val($('#id_purchasetotal-0-Quantity_p').val() * $('#id_purchasetotal-0-rate_p').val() * (1 - ($("#id_purchasetotal-0-Disc_p").val()/100)));
});
}
else {
$('#id_purchasetotal-0-Quantity_p, #id_purchasetotal-0-rate_p').on('change', function() {
$('#id_purchasetotal-0-Total_p').val($('#id_purchasetotal-0-Quantity_p').val() * $('#id_purchasetotal-0-rate_p').val());
});
}
});
</script>
Есть идеи, как это сделать?
Спасибо