Как пройти через django идентификатор набора форм в jquery? - PullRequest
0 голосов
/ 18 мая 2019

Моя модель:

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>

Есть идеи, как это сделать?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...