我已经了解了django信号但是,我不知道在我的项目中实现的位置以及如何在我的项目中使用它.在我的项目中,我想发送电子邮件警报,如果它符合某些特定标准.在这种情况下,我需要使用post_save信号.我添加了代码.请分享您的想法.
models.py
class Personal(models.Model):
user = models.OneToOneField(User)
email = models.EmailField(max_length=100, blank=True, null=True)
country = models.CharField(max_length=100, blank=True, null=True)
state = models.CharField(max_length=100, blank=True, null=True)
city = models.CharField(max_length=100, blank=True, null=True)
class Skills(models.Model):
user = models.ForeignKey(User)
skill = models.CharField(max_length=100, blank=True, null=True)
class jobs(models.Model):
emp = models.ForeignKey(User, unique=False)
title = models.CharField(max_length=100)
industry = models.CharField(max_length=100)
functionalarea = models.CharField(max_length=100)
min_exp = models.IntegerField(default=0)
max_exp = models.IntegerField(default=0)
city = models.CharField(max_length=100)
state = models.CharField(max_length=100)
country = models.CharField(max_length=100)
empskills = models.CharField(max_length=100, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
在这里,我希望将jobs和empills.skill模型匹配city和empskills of jobs表.如果每个作业都匹配任何一个字段,它将自动发送邮件到personal.email,则会发生此事件.请举例说明信号的使用位置和使用方法.
Emi*_*yan 10
在模型外部编写一个函数,用于处理发布新作业的时间并找到要发送电子邮件的人员.
然后,您指定Job的sender一个post_save信号和连接功能.
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(post_save, sender=Job)
def handle_new_job(sender, **kwargs):
job = kwargs.get('instance')
logger.info("POST_SAVE : Job : %s" % job)
# find people to email based on `job` instance
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3505 次 |
| 最近记录: |