1

[うまくいけば、私はこの投稿に正しくタイトルを付けました]

私は(ある種の)「フォロー」ツイッターのことを行っています。ユーザーは、オブジェクト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.')
4

1 に答える 1

3

特定の会社のフォロワー数が5の倍数になるたびに、次のようにメールを送信します。

   if not (Follower.objects.filter(company=company).count() % 5):
        #send the email
于 2012-09-11T19:17:45.000 に答える