簡體   English   中英

在對象滿足特定條件后發送電子郵件

[英]Send an email once object meets certain criteria

[希望我能正確地發表這篇文章]

我有一個(有點)'跟隨'推特的事情。 用戶可以關注company配置文件對象,該對象可創建follower對象。

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個新關注者? 我真的不知道該怎么做。 非常感謝任何幫助或建議。

視圖:

@login_required
# this is creating a follower. Maybe I shouldn't send the email through this?
def follow(request, id):
    company = Company.objects.get(id=id)
    profile = get_object_or_404(UserProfile, user__username=request.user.username)
    try:
        follower = Follower.objects.get(profile=profile, company=company)
        if not follower.verified:
            follower.verified = True
            follower.save() 
        messages.success(request, 'Now following %s\''%company.name)
        mes = Message(subject="New Follower", sender=profile, recipient=company.owner)
        mes.body = render_to_string('emails/email-message/new_follower.html', RequestContext(request, {
        'sender': profile,
        'receiver': company.owner,
        }))
    except ObjectDoesNotExist:
        messages.error(request, 'Failed to follow.')

每當特定公司的粉絲數量變為5的倍數時發送電子郵件,如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM