Как вставить одну таблицу и обновить другую таблицу в django - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть две таблицы, покупка с четырьмя полями (идентификатор, поставщик, предметы и количество), и у меня есть таблица предметов с четырьмя полями (идентификатор, наименование товара, количество). Всякий раз, когда я вставляю данные в таблицу покупок, я хочу обновить количество этого товара в таблице товаров. Например, если я куплю один товар, количество будет обновлено в таблице товаров.

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

Вы можете сделать это с помощью переопределения метода сохранения класса purchase.

Если поле items в классе purchase является внешним ключом для класса items, оно может выглядеть так.

class purchase(models.Model):

    ...

    def save(self, *args, **kwargs):
        super().save(*args, **kwargs)
        self.items.quantity = *value you need*
        self.items.save()
0 голосов
/ 23 апреля 2020

Другой подход будет использовать сигналы . Таким образом, вам не нужно переопределять метод сохранения. И просто реагируем на это событие (в нашем случае сигнал post_save)

@receiver(post_save, sender=Purchase)
def update_quantity(sender, instance, **kwargs):
    # If its a foreign key:
    for item in instance.items.all(): 
        item.quantity = ... 
        item.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...