34、评论发送邮件通知
1、利用邮件提高访问量
- 进一步发挥邮箱作用
- 一旦被评论(回复)了,发邮件通知,让用户再次访问我们的网站
在comment/views.py中的update_comment,我们提交评论之后,就可以发送邮件。该怎么发送邮件通知分两种情况:一种是评论博客的,一种是回复评论的。我们可以通过parent进行判断,如果有parent,说明是回复评论的。修改如下(其中的send_email,参考user/views.py中的send_email):
text = comment.text + '\n' + reverse('blog_detail', kwargs={'blog_pk': comment.content_object.pk}) # 反向解析得到链接
这里,这个地方不一定是个博客,这样写有点违背comment_object的初衷,我们设计这个的初衷是让它可以评论任何对象,但我们这里解析这个链接的时候,已经规定成一个博客了,又把它限制成一个博客的模型里面,这很不符合我们的这个设计,这要怎么处理呢?
最好这个链接可以通过comment_object得到,而comment_object是一个具体的对象,那我们可以考虑在blog/models.py的Blog模型这里,它可以实例化出来一个对象,我们可以加多一个方法(参数email同理)
修改blog/models.py如下:
然后重新修改comment/views.py如下:
简化如下:
# 发送邮件通知
if comment.parent is None:
# 评论博客的
subject = '有人评论你的博客'
email = comment.content_object.get_email()