将外键模型与Django信号连接

时间:2020-08-09 06:19:26

标签: django django-models django-signals

我正在尝试构建一个Django信号,其发送者是模型(称为细菌),而接收者是模型(称为Bumblebee)。这些模型通过以下方式具有外键关系:

class Bumblebee(models.Model):
    name = models.CharField(max_length=50)

class Bacteria(models.Model):
    bumblebee = models.ForeignKey(Bumblebee, on_delete=models.CASCADE) 

在构建此post_save信号以侦听正在创建的细菌时,我该如何调用Bumblebee字段?这是我所拥有的,但不起作用。

@receiver(post_save, sender=Bacteria)
def my_handler(sender, **kwargs):
    bumblebee = Bacteria.bumblebee
    print(bumblebee.name)

1 个答案:

答案 0 :(得分:1)

您需要使用当前创建的细菌实例。

   @receiver(post_save, sender=Bacteria)
   def my_handler(sender,instance,created,**kwargs):
     if created:
        bumblebee = instance.bumblebee
        print(bumblebee.name)

这里的实例是细菌的对象。