为什么当我在表中创建新条目时不调用 django 信号?

Why django signals are not called when I create a new entry in the table?

提问人:Artem Kusch 提问时间:10/3/2023 更新时间:10/3/2023 访问量:25

问:

创建了一个信号,用于检查机器人表中是否有新条目。然后将模型和版本数据与“顺序”表进行比较,然后发送电子邮件。但没有任何效果。可能是什么问题?

@receiver(post_save, sender=Robot)
def robot_created(sender, instance, **kwargs):
    orders = Order.objects.all()

    for order in orders:
        robot_exists = Robot.objects.filter(model=order.robot_model, version=order.robot_version).exists()

        if robot_exists:
            subject = 'text'
            message = 'text'
            from_email = '[email protected]'
            recipient_list = ['[email protected]']

            send_mail(subject, message, from_email, recipient_list)

order.models.py

class Order(models.Model):
    customer = models.ForeignKey(Customer,on_delete=models.CASCADE)
    robot_model = models.CharField(max_length=2, blank=True,null=True)
    robot_version = models.CharField(max_length=2, blank=True,null=True)

robots.models.py


class Robot(models.Model):
    serial = models.CharField(max_length=5, blank=False, null=False)
    model = models.CharField(max_length=2, blank=False, null=False)
    version = models.CharField(max_length=2, blank=False, null=False)
    created = models.DateTimeField(auto_now_add=True)

我试图把它扔进不同的文件夹,把打印放在函数里(什么都没有出来)

python django 数据库 电子邮件 django-signals

评论

0赞 willeM_ Van Onsem 10/3/2023
如何创建 ,在哪里加载模块?Robotsignals
0赞 Artem Kusch 10/3/2023
当我添加 signals.post_save.connect(receiver=robot_created, sender=Robot) 时,发生错误,无法从部分初始化的模块“robots.models”导入名称“Robot”
0赞 Artem Kusch 10/3/2023
我解决了,谢谢你的提示

答: 暂无答案