Django all auth: Как переопределить URL-адрес подтверждения по электронной почте - PullRequest
1 голос
/ 09 апреля 2019

Я хочу переопределить URL-адрес подтверждения в 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.

Как мне переписать URL-ссылку на электронную почту?Или, если он слишком сложный, каков простой способ проверить электронную почту на веб-интерфейсе?

Ответы [ 2 ]

3 голосов
/ 09 апреля 2019

Шаблон отображается с контекстом, содержащим user, current_site, activate_url и key (см. Метод send_confirmation_mail() в allauth / account / adapter.py ).

Таким образом, вы можете просто переопределить шаблон и использовать key (и, вероятно, также current_site для создания абсолютного URI), чтобы создать свой URL в шаблоне.

0 голосов
/ 03 мая 2019

Чтобы решить эту проблему, вам может понадобиться переопределить функцию 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...