Обновление поля модели при обновлении другого модального поля
Наличие двух моделей:
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)