我们在项目中使用django-contrib-comments进行内容和客户之间的通信。员工沟通工作在内部,我已经制作了一个自定义电子邮件通知系统,每当其他一些成员在您的页面上发表评论时,系统会通知您。
现在我遇到的问题是,想要回复评论的用户只会通知自己,而不是留下评论的工作人员。
电子邮件通知设置由两部分组成,第一部分是留下评论的工作人员,第二部分是回复评论的用户。
问题是如何引用所有准备好发表评论的用户,我需要他的电子邮件,因此我可以将他添加到收件人列表中,以便在其他人回复评论时通知他。
comment.user
和comment.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 :(得分:0)
我发现django-contrib-comments
现在由两个独立的库组成/分开,
所以在threadedcomments
中有一个parent
模型字段,当您回复评论时,您可以将其关联起来,因此,我刚刚制作了类似comment.parent.user_email
和我的内容检查父项是否已定义,而不是“无”,问题已解决。