首页 > 解决方案 > Django Allauth - 将上下文添加到密码重置电子邮件

问题描述

对于这个项目,我使用 Django Allauth 来让用户注册和验证。

要将用户“first_name”添加到确认电子邮件链接的上下文中,我继承自 DefaultAccountAdapter 并将 first_name 添加到电子邮件上下文中。

#adapter.py
class CustomEmailAdapter(DefaultAccountAdapter):

def get_email_confirmation_url(self, request, emailconfirmation):
    """Constructs the email confirmation (activation) url.
    Note that if you have architected your system such that email
    confirmations are sent outside of the request context `request`
    can be `None` here.
    """
    url = reverse(
        "account_confirm_email",
        args=[emailconfirmation.key])
    ret = build_absolute_uri(
        request,
        url)
    return ret

def send_confirmation_mail(self, request, emailconfirmation, signup):
        current_site = get_current_site(request)
        activate_url = self.get_email_confirmation_url(
            request,
            emailconfirmation)
        ctx = {
            "first_name": emailconfirmation.email_address.user.first_name, # <-- Added first_name to the context
            "user": emailconfirmation.email_address.user,
            "activate_url": activate_url,
            "current_site": current_site,
            "key": emailconfirmation.key,
        }
        if signup:
            email_template = 'account/email/email_confirmation_signup'
        else:
            email_template = 'account/email/email_confirmation'
        self.send_mail(email_template,
                       emailconfirmation.email_address.email, ctx)

我现在想对密码重置电子邮件执行相同的操作,但我认为不可能将其添加到自定义 AccountAdpater。

任何想法如何为密码重置电子邮件添加一些上下文,我想以“亲爱的约翰”开始我的电子邮件

提前致谢!

标签: djangodjango-allauth

解决方案


推荐阅读