Обновление полей на основе другой таблицы в моделях django с помощью метода override
У меня есть две модели, В модели деятельности статус - это имя колонки, эта строка колонки должна обновляться от 'Pending' до 'Done', когда строка колонки статуса обновляется от 'Pending' до 'Done' в модели элемента.
class Activity(models.Model):
a_id = models.AutoField(primary=True, unique=True)
status = models.CharField(max_length=225, blank=True,null=True, default="Pending")
class Item(models.Model):
item_id = models.AutoField(primary=True, uniue=True)
status = models.CharField(max_length=225, blank=True, null=True, default="Pending")
activityid = models.ForeginKey(Activity, on_delete=models.CASCADE,
related_name="activitynt")
В models.py используйте сигналы для обновления статуса
models.py
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(post_save, sender=Activity)
def update_item_status(sender, instance,created, **kwargs):
Item.objects.filter(activityid=instance.pk).update(status=instance.status)