【问题标题】:update fields based on other table in django models using override method使用覆盖方法根据 Django 模型中的其他表更新字段
【发布时间】:2022-12-06 17:57:41
【问题描述】:

我有两个模型,在活动模型中,状态是列名,当状态列行在项目模型中从“待定”更新为“完成”时,该列行必须从“待定”更新为“完成”。

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

【问题讨论】:

    标签: python django


    【解决方案1】:

    在 models.py 中使用信号来更新你的状态

    模型.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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2022-10-24
      • 1970-01-01
      • 2016-06-10
      • 2019-04-15
      • 2016-08-05
      • 2017-05-07
      相关资源
      最近更新 更多