Django Электронное письмо с подтверждением / проверкой Allauth не отправлено после регистрации - PullRequest
0 голосов
/ 27 мая 2020

Я использую пользовательскую модель Custom, и до сих пор мне удавалось подключить ее к пакету allauth, расширяющему «RegistrationForm».

Кажется, все работает нормально, потому что я регистрируюсь, и информация о новой учетной записи находится в базе данных (таблица пользователей и таблица account_emailaddress), но электронное письмо не отправляется.

вот как выглядит моя форма регистрации

forms.py

class StudentSignUpForm(SignupForm): 

    @transaction.atomic
    def save(self, request):
        user = super(StudentSignUpForm, self).save(request)
        user.is_student = True
        user.save()
        student = StudentProfile.objects.create(user=user)
        return user

views.py

def student_profile_view(request):

    if request.method == 'POST':

        user_form = StudentSignUpForm(request.POST, prefix='UF')

        if user_form.is_valid():
            user_form.save(request)
            return redirect('/') 

    else: 
        user_form = StudentSignUpForm(prefix='UF')

    return render(request, 'registration/student-profile.html', {'user_form': user_form,})

Это работает для создания настраиваемого пользователя, а также для создания пользователя в разделе «Вся аутентификация», зарегистрированный адрес электронной почты отображается в «/ admin /» в разделе accounts / emails_address, но электронные письма с подтверждением не отправляются новым зарегистрированным пользователям. .

Как исправить ?? Есть идеи ??

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

Я исправил. Проблема заключалась в представлениях, все, что мне нужно было сделать, это перейти в представление на основе классов и использовать просмотр регистрации allauth.

В views.py

from allauth.account.views import SignupView


class student_profile_view(SignupView):

    # The referenced HTML content can be copied from the signup.html
    # in the django-allauth template folder

    template_name = 'registration/student-profile.html'

    # the previously created form class
    form_class = StudentSignUpForm

затем в моем настраиваемом шаблоне подписки я просто передал «form» для отображения формы регистрации.

в urls.py

    path('register/student/', student_profile_view.as_view(), name='intern_register'),

0 голосов
/ 27 мая 2020

Для отправки электронной почты вам необходимо настроить django настройки электронной почты

Пожалуйста, перейдите по ссылке , чтобы отправить электронное письмо, и ссылке , чтобы узнать о django настройках электронной почты

После сохранения профиля пользователя вы звоните

class StudentSignUpForm(SignupForm): 
    ........
    student = StudentProfile.objects.create(user=user)
    send_mail(
        'Subject here',
        'Here is the message.',
        'from@example.com',
        ['to@example.com'],
        fail_silently=False,
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...