Метод Save не вызывается в админке модели StackedInline в Django

models.py

class form21tablet(models.Model):

date = models.DateField()

TotalNetWt = models.DecimalField(max_digits=8, decimal_places=3,default=0,  editable=False, null=True, blank=True)
yieldPercent = models.DecimalField(max_digits=4, decimal_places=2, default=0, editable=False, null=True, blank=True)


def save(self):
    #self.save()

    print('hello This is Before if')

    #calculation of total and percentage
    totnet=0
    totgross= 0
    # print('Hi', self.form21entry_set.all())
    for item in self.form21entry_set.all():
        print('Hi')
        totnet += item.net
        totgross += item.gros
    print(totnet)
    print(totgross)
    self.TotalNetWt = totnet
    if totgross:
        self.yieldPercent = totnet*100/totgross
    print(self.TotalNetWt)
    print(self.yieldPercent)
    super().save()

class form21entry(models.Model):

formref = models.ForeignKey(form21tablet, on_delete=models.CASCADE)

Date = models.DateField() ContainerNo = models.IntegerField()

tare = models.DecimalField(max_digits=5, decimal_places=3, verbose_name='Tare Wt.(KG)')

gros = models.DecimalField(max_digits=5, decimal_places=3, verbose_name='Gross Wt.(KG)')

net = models.DecimalField(max_digits=5, decimal_places=3, verbose_name='Net Wt.(KG)', editable=False)

done_by = models.CharField(max_length=50)

Checked_by = models.ForeignKey(User, on_delete=models.CASCADE, related_name='+')

answer = ( ('1', 'Ok'), ('0', 'Not Ok') )

Remarks = models.CharField(max_length=50, choices=answer)

def save(self):
    self.net = self.gros - self.tare
    return super().save()
def __str__(self):
    return str(self.Date) + ' - ' + str(self.ContainerNo)

admin.py

class form21entryInline(admin.StackedInline):

model = form21entry

class form21tabletAdmin(admin.ModelAdmin):

list_display = ['date', 'TotalNetWt', 'yieldPercent']

class Meta:

model = form21tablet

inlines = [form21entryInline]

readonly_fields = ('TotalNetWt', 'yieldPercent')

admin.site.register(form21tablet, form21tabletAdmin)

Я пытаюсь получить расчеты при сохранении формы, но я не получаю никаких ответов, когда я сохраняю ее один раз, если я сохраняю ее дважды, она возвращает мне все расчеты.

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