Django Signals для обновления другой модели

Скажем, у меня есть две модели:

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

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

Когда продажа сделана, яМне нравится количество продукта, который будет обновлен. Являются ли сигналы лучшим способом для этого?

Я думал о том, чтобы продажа допустила сигнал post_save, когда объект создается или обновляется. В случае обновления мне нужно будет знать старые и новые значения, чтобы правильно настроить количество. Таблица продукта должна была бы прислушиваться к этому сигналу.

Я также думал о том, чтобы таблица продуктов отправляла пользовательский сигнал после обновления количества. Если количество < 0 товар находится на обратном заказе, иначе "успех».

Я новичок в django и сигналах, но подходит ли это для сигналов или это лучший способ сделать это? Я прочитал документы, посмотрел видео по сигналам и прочитал несколько примеров. Мне еще предстоит увидеть сигналы, используемые таким образом, но я могуне думаю о каком-либо другом способе выполнить эту задачу.

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

@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)

Ответы на вопрос(0)

Ваш ответ на вопрос