2017-05-25 67 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模型場當你回覆評論時你可以關聯,所以我只是做了類似的東西,我檢查了是否定義了父項,而不是無,並且問題已解決。