首页 > 解决方案 > Django如何在使用信号从另一个模型输入后更新一些特定的字段数据

问题描述

我对 django 信号有一些问题。在我向 PenelitiPemindahanWP 输入数据后,我想将 PermohonanWP 状态模型字段从“PROSES”更新为“SUCCESS”。(假设我已经将数据输入到 PermohonanWP 模型,状态 = 'PROSES')

这是我的model.py

class PermohonanWP(models.Model):
      npwp = models.CharField(max_length=15, null=False)
      nama = models.CharField(max_length=100, null=False)
      status = models.CharField(max_length=20, null=True)

class PenelitiPemindahanWP(models.Model):
      permohonan_pemindahan = models.ForeignKey(PermohonanWP, on_delete=models.CASCADE)
      nomor_lhp = models.IntegerField(null=True)
      nomor_st = models.CharField(max_length=50, null=True)

这里我的信号我在model.py中输入

@receiver(post_save, sender=PenelitiPemindahanWP, dispatch_uid="update_permohonan_id")
def update_permohonan(sender, instance, **kwargs):
    pemohon = PermohonanWP.objects.get(id=instance.permohonan_pemindahan)
    pemohon.status = "SUCCESS"
    pemohon.save()

我想从 PermohonanWP 更新状态字段,但是每当我提交已保存的按钮时,它不会保存并且不会更新字段。

标签: djangodjango-signals

解决方案


纠正这个

pemohon = PermohonanWP.objects.get(id=instance.permohonan_pemindahan)

pemohon = PermohonanWP.objects.get(id=instance.permohonan_pemindahan.id)

或者

甚至简单:

pemohon = instance.permohonan_pemindahan

推荐阅读