Python 一旦对象满足某些条件,就发送电子邮件

Python 一旦对象满足某些条件,就发送电子邮件,python,django,django-email,Python,Django,Django Email,[希望我正确地为这篇文章命名] 我有一种“关注”推特的感觉。用户可以跟踪公司配置文件对象,该对象创建一个追随者对象 class Follower(models.Model): created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) profile = models.ForeignKey(UserProfile) company

[希望我正确地为这篇文章命名]

我有一种“关注”推特的感觉。用户可以跟踪
公司
配置文件对象,该对象创建一个
追随者
对象

class Follower(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)
    profile = models.ForeignKey(UserProfile)
    company = models.ForeignKey(Company)
    verified = models.BooleanField(default=False)
    from_user = models.BooleanField(default=False)

...

class Company(models.Model):
    owner = models.ForeignKey(User, null=True, blank=True, on_delete=models.SET_NULL)
    name = models.CharField(max_length=200)
    ... and more fields that aren't relevant
我想做的是在5名新追随者之后,向公司档案所有者发送一封更新电子邮件你有5个新的追随者

从现在起,每次他们有新的追随者时,我都会给他们发一封电子邮件。有点多,我知道

我猜我需要创建一个追随者列表,发送它,然后删除它来准备5个新的追随者?我真的不知道该怎么办。非常感谢您的帮助或建议

视图:


每次特定公司的关注者数量变为5的倍数时发送电子邮件,如下所示:

   if not (Follower.objects.filter(company=company).count() % 5):
        #send the email

我仍然需要创建一个包含5个最新追随者的列表,是吗?是的,就像Follower.objects.filter(company=company)一样简单。order_by('-created')[:5],这将为您提供最后5个追随者,您无需删除任何内容。另一个稍微复杂的选项是使用信号。如果你想让我也写这个解决方案,让我知道,如果这个不适合你。我对django相当陌生,还没有处理信号。我很想看!谢谢你的帮助!
   if not (Follower.objects.filter(company=company).count() % 5):
        #send the email