Обновление поля модели при обновлении другого модального поля

Наличие двух моделей:

class A(models.Model):
    project_code = models.CharField(max_length=250, null=False, blank=False)
    reference_code = models.CharField(max_length=250, null=False, blank=False, unique=True)
    quantity = models.CharField(
        max_length=250,
        null=True,
        blank=True,
    )


class B(models.Model):
    project_id = models.IntegerField(
        null=False, 
        blank=False, 
        default=0,
    )
    quantity = models.CharField(
        max_length=250,
        null=True,
        blank=True,
    )

Я хотел бы обновлять B.quantity при изменении A.quantity. Как я могу синхронизировать эти два поля?

При создании объекта B, B.quantity всегда получает значение из существующего A.quantity.

Я новичок в использовании Django ORM.

Я исследовал и нашел это в официальной документации, но мне неясно, как "синхронизировать" Many-to-one relationships с одним полем, поскольку кажется, что синхронизируется вся таблица.

Вы можете переопределить метод сохранения модели A. Вы также можете добиться этого с помощью сигналов django, но удобнее и понятнее переопределить метод сохранения.

def save(self, *args, **kwargs):
    super().save(args, kwargs)
    B.objects.filter(<relation_field>).update(quantity=self.quantity)
Вернуться на верх