1 回答
TA贡献1848条经验 获得超2个赞
如果您希望这种情况在任何地方发生,我建议向模型save()的方法添加一个覆盖Post,并在它增加到两个喜欢时向那里发送电子邮件。您还可以使用 Django 的send_mail函数,它是发送电子邮件的一个很好的包装器。胖模型、瘦视图、愚蠢模板是 Django 最佳实践的口头禅。也许是这样的:
from django.core.mail import send_mail
class Post(models.Model):
title = models.CharField(max_length=100, unique=True)
likes = models.ManyToManyField(
User, related_name='liked', blank=True)
def __str__(self):
return self.title
def save(self, *args, **kwargs):
if self.total_likes() == 2:
send_mail(
"my subject",
"my text message",
"myemail@myhost.com",
["myuser@theirhost.com"],
html_message="<h1>My HTML Message</h1>",
)
super().save(*args, **kwargs)
def total_likes(self):
return self.likes.count()
祝你好运!
添加回答
举报