0
I am trying to use Signal to do a subtraction update on a table based on the value the user selects. an example situation: 
On the table Materiais I have the pen material with the fields: codigo_material, descricao_material and quantidade_estoque.
on the table Materiais_Solicitacao picked up the material through a ForeignKey and I also own the field quantidade_aprovada.
I’m trying to make the value passed in the field quantidade_aprovada is subtracted from quantidade_estoque.
models.py Materials
class Materiais(models.Model):
    descricao_material = models.CharField('Descrição do Material', max_length=100)
    codigo_material = models.IntegerField(blank=False, null=False)
    almoxarifado_relacionamento = models.ForeignKey(Almoxarifado, on_delete=models.CASCADE)
    quantidade_estoque = models.FloatField('Quantidade em Estoque', blank=True, null=True)
    class Meta:
        verbose_name = 'Material'
        verbose_name_plural = 'Materiais'
    def __str__(self):
        return self.descricao_material
models.py Materiais_solicitacao
Class Materiais_Solicitacao(models.Model):
        quantidade_material = models.FloatField('Quantidade de Material', null=False, blank=False)
        quantidade_aprovada = models.FloatField('Quantidade Aprovada', blank=True, null=True)
        relacionamento_materiais = models.ForeignKey(Materiais, on_delete=models.CASCADE)
        relacionamento_solicitacao = models.ForeignKey(Solicitacao, on_delete=models.CASCADE)
        unidade_relacionamento = models.ForeignKey(Unidade, on_delete=models.CASCADE)
    class Meta:
        verbose_name = 'Material da Solicitação'
        verbose_name_plural = 'Material das Solicitações'
    def __str__(self):
        return str(self.relacionamento_materiais)
attempt of Signal that I made
def update_estoque(sender, instance, *args, **kwargs):
        materiais = instance.relacionamento_materiais.all()
        estoque_update = 0
        for x in materiais:
            estoque_update = x.quantidade_estoque - instance.quantidade_aprovada
            instance.quantidade_estoque = estoque_update
            print(estoque_update)  
        pre_save.connect(update_estoque, sender=Materiais)
py views.
class SolicitacaoCreateUpdate(PermissionRequiredMixin, UpdateView):
    permission_required = 'administrativo_permissao'
    raise_exception = True
    model = Solicitacao
    template_name = 'administrativo/administrativo_update.html'
    form_class = SolicitacaoForm
    def get_context_data(self, **kwargs):
        context = super(SolicitacaoCreateUpdate, self).get_context_data(**kwargs)
        context['materiaisList'] = Materiais_Solicitacao.objects.all().filter(relacionamento_solicitacao_id=self.object)
        context['materiaisEstoque'] = Materiais.objects.all()
        context['avisos'] = Aviso.objects.all()
        if self.request.POST:
            context['materiais'] = MateriaisFormSet(self.request.POST, instance=self.object)
        else:
            context['materiais'] = MateriaisFormSet(instance=self.object)
        return context
    def form_valid(self, form):
        context = self.get_context_data()
        materiais = context['materiais']
        with transaction.atomic():
            self.object = form.save()
            if materiais.is_valid():
                materiais.instance = self.object
                materiais.save()
        return super(SolicitacaoCreateUpdate, self).form_valid(form)
    def get_success_url(self):
        return reverse('detalheAdministrativo', args=(self.object.pk,))