Джанго: Как передать значение от одного CBV к другому - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь настроить формы / шаблоны аутентификации django. URL / account / password_reset / (CBV: PasswordResetView) используется для ввода адреса электронной почты учетной записи. После отправки формы пользователь перенаправляется в / account / password_reset / done / (CBV: PasswordResetDoneView)

Мне нужно использовать значение электронной почты в PasswordResetDoneView. Как я могу это сделать?

Извините за вопрос новичка.

urls.py

from django.urls import path, include
from . import views

urlpatterns = [
    # ...
    path('accounts/password_reset/', views.CustomPasswordReset.as_view(), name='password_reset'),
    path('accounts/password_reset/done/', views.CustomPasswordResetDone.as_view(), name='password_reset_done'),
    # ...
]

views.py

from django.contrib.auth import views as auth_views
from .forms import LoginForm, ResetForm, NewPasswordForm

class CustomPasswordReset(auth_views.PasswordResetView):
    template_name = 'authorization/password_reset_form.html'
    html_email_template_name = 'authorization/password_reset_email_html.html'
    email_template_name = 'authorization/password_reset_email_plain.html'
    subject_template_name = 'authorization/password_reset_subject.txt'


class CustomPasswordResetDone(auth_views.PasswordResetDoneView):
    template_name = 'authorization/password_reset_done.html'

    # TODO. I have no idea how to get email address that was entered in 'password_reset' step
    # 
    email = 'example@gmail.com'
    mbox, mserver = email.split('@')
    extra_context = {'mserver': mserver}
...