2017-05-25 98 views
0

我们使用的是django-contrib-comments中的东西和客户之间的沟通项目。员工沟通工作在内部进行,我制作了一个自定义电子邮件通知系统,每当其他人员在您的网页上发表评论时,系统都会通知您。参考user_email回复评论

现在我面临的问题是,想要回复评论的用户只会通知他自己,而不是通知他的员工。

电子邮件通知设置由两部分组成,第一部分针对发表评论的工作人员,第二部分针对回复评论的用户。

问题是如何引用已准备好留下评论的用户,我需要他的电子邮件,所以我可以将他添加到收件人列表中,以便在别人回复评论时通知他。

comment.usercomment.user_email事情上你提到的评论的模式,但我怎么也找不到指user_email谁的都准备好了评语时,要回复到它的documentation,这部分解释了示范田,我可以理解

user_email - 发布评论的用户的电子邮件。

它在第一部分中是完美的,但在第二部分中它将引用正在留言的用户,这就是为什么另一个不会被通知,所以有人可以帮助我更好地理解如何参考我正在回复的user_email,这样我就可以正常工作。

def send_comment_posted_emails(self, comment): 
    comment_user = comment.user 
    comment_user_email = comment.user_email 
    comment_text = comment.comment 
    handler_user = self.account_handler 
    handler_email = handler_user.email 

    # First part 
    if handler_email is not None and handler_email != comment_user.email: 
     current_site = Site.objects.get_current() 
     sub_org_url = self.get_view_url() + "#CommentsDiv" 
     ctx = {"sub_org_url": sub_org_url, "site_name": current_site.name, "sub_org_sn": self.serial_number, 
       "posted_name": user_util.get_user_full_name_or_user_name(comment_user), 
       "comment_text": comment_text} 
     subject = render_to_string("clients/emails/email_sub_org_comment_posted_subject.txt", ctx) 
     subject = "".join(subject.splitlines()) 
     message = render_to_string("clients/emails/email_sub_org_comment_posted_message.html", ctx) 

     MailManager.send_mail_with_error_handler(subject, message, settings.DEFAULT_FROM_EMAIL, 
               [handler_email, comment_user_email], message_html=message) 

    # Second part 
    if handler_email is not None and handler_email == comment_user.email: 
     current_site = Site.objects.get_current() 
     sub_org_url = self.get_view_url() + "#CommentsDiv" 
     ctx = {"sub_org_url": sub_org_url, "site_name": current_site.name, "sub_org_sn": self.serial_number, 
       "posted_name": user_util.get_user_full_name_or_user_name(comment_user), 
       "comment_text": comment_text} 
     subject = render_to_string("clients/emails/reply_to_email_sub_org_comment_posted_subject.txt", ctx) 
     subject = "".join(subject.splitlines()) 
     message = render_to_string("clients/emails/reply_to_email_sub_org_comment_posted_message.html", ctx) 

     MailManager.send_mail_with_error_handler(subject, message, settings.DEFAULT_FROM_EMAIL, 
               [handler_email, comment_user_email], message_html=message) 

回答

0

我发现django-contrib-comments现在组成/在两个独立的库划分出来,

  1. django-fluent-comments
  2. django-threadedcomments

所以在threadedcomments上有一个parent模型场当你回复评论时你可以关联,所以我只是做了类似的东西,我检查了是否定义了父项,而不是无,并且问题已解决。