Django allauth:如何覆盖确认电子邮件网址

问题描述 投票:1回答:2

我想要做的是覆盖templates/account/email/email_confirmation_message.txt中的确认电子邮件网址。

我想改变这一部分

To confirm this is correct, go to {{ activate_url }}

喜欢的东西

http://localhost:8080/confirm_email/{{ key }}

但是,我无法弄清楚{{ activate_url }}来自哪里。我想将key发送到rest-auth制作的端点。

如何重写电子邮件中的网址链接?或者,如果它过于混乱,在前端验证电子邮件的简单方法是什么?

django django-rest-framework single-page-application django-allauth django-rest-auth
2个回答
3
投票

模板使用包含usercurrent_siteactivate_urlkey的上下文进行渲染(请参阅allauth / account / adapter.py中的send_confirmation_mail()方法)。

因此,您可以覆盖模板并使用key(也可能使用current_site创建绝对URI)在模板中创建URL。


0
投票

要解决此问题,您可能只需要覆盖send_email函数。

from allauth.account.adapter import DefaultAccountAdapter
from django.conf import settings

class CustomAllauthAdapter(DefaultAccountAdapter):
    def send_mail(self, template_prefix, email, context):
    account_confirm_email = '/api/v1/auth/register/account-confirm-email/'
    context['activate_url'] = (
        settings.BASE_URL + account_confirm_email + context['key']
    )
    msg = self.render_mail(template_prefix, email, context)
    msg.send()
© www.soinside.com 2019 - 2024. All rights reserved.