请参阅user_email以回复评论

时间:2017-05-25 06:32:44

标签: python django django-email

我们在项目中使用django-contrib-comments进行内容和客户之间的通信。员工沟通工作在内部,我已经制作了一个自定义电子邮件通知系统,每当其他一些成员在您的页面上发表评论时,系统会通知您。

现在我遇到的问题是,想要回复评论的用户只会通知自己,而不是留下评论的工作人员。

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

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

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)

1 个答案:

答案 0 :(得分:0)

我发现django-contrib-comments现在由两个独立的库组成/分开,

  1. django-fluent-comments
  2. django-threadedcomments
  3. 所以在threadedcomments中有一个parent模型字段,当您回复评论时,您可以将其关联起来,因此,我刚刚制作了类似comment.parent.user_email和我的内容检查父项是否已定义,而不是“无”,问题已解决。