Sinais do Django para atualizar um modelo diferente

Digamos que eu tenha dois modelos:

class Product(models.Model):
    product = model.CharField()
    quantity = model.IntegerField()

class sale(models.Model)
    product = models.ManyToManyField(Product)
    number_sold = model. IntegerField()

Quando uma venda é feita, eu gostaria que a quantidade do produto fosse atualizada. São sinais a melhor maneira de fazer isso?

Eu estava pensando em ter a venda admitir um sinal post_save quando um objeto é criado ou atualizado. Se atualizado, eu teria que saber os valores antigos e novos para ajustar a quantidade corretamente. A tabela de produtos deveria estar escutando este sinal.

Eu também estava pensando em fazer com que a tabela de produtos enviasse um sinal personalizado após atualizar a quantidade. Se a quantidade <0 item estiver em ordem, senão "sucesso".

Eu sou novo em django e sinais, mas isso é um uso apropriado para sinais ou é a melhor maneira de fazer isso? Eu li os documentos, assisti a um vídeo sobre sinais e li alguns exemplos. Ainda estou para ver os sinais usados ​​dessa maneira, mas não consigo pensar em nenhuma outra maneira de realizar essa tarefa.

Foi assim que acabei realizando meu objetivo, estou muito interessado em saber se essa é a maneira correta de fazer isso. Peço desculpas pelos modelos que não correspondem ao código abaixo, simplifiquei meus modelos para facilitar.

@receiver(pre_save, sender=Customer_Order_Products)
    def update_quantity(sender, **kwargs):
        obj = kwargs['instance']
        updated_product = Inventory.objects.get(title = obj.product_id)
        if not obj.id:
            updated_product.quantity -= obj.quantity
        else:
            updated_product.quantity -= (obj.quantity - Customer_Order_Products.objects.get(id = obj.id).quantity)
        Inventory.save(updated_product)

questionAnswers(0)

yourAnswerToTheQuestion