Как вызвать аутентификационное представление из другого представления? - PullRequest
1 голос
/ 09 февраля 2020

Я хочу выполнить пользовательский блок logi c в представлении перед вызовом PasswordResetView. Это то, что я пытаюсь сделать, что, конечно, всегда терпит неудачу, независимо от кода, я должен идти по неадекватному пути для достижения этой цели. Мне нужно сохранить некоторую информацию, сделать несколько внутренних уведомлений и вызвать представление сброса пароля, только если условие выполнено.

views.py

from django.contrib.auth.views import PasswordResetView
def user_password_reset(request):
    # Do something here before loading the passwordresetview
    # Logic here 
    return PasswordResetView.as_view(template_name = 'account/password_reset_form.html',
                                     email_template_name='account/password_reset_email.html',
                                     html_email_template_name='account/password_reset_email.html',
                                     success_url = reverse_lazy('account:password_reset_done'))

Что является стандартный способ достижения этого?

Большое спасибо заранее.

1 Ответ

1 голос
/ 09 февраля 2020

Вы можете вызвать функцию, которая возвращается .as_view():

from django.contrib.auth.views import PasswordResetView

def user_password_reset(request):
    # Do something here before loading the passwordresetview
    # Logic here 
    return PasswordResetView.as_view(
        template_name='account/password_reset_form.html',
        email_template_name='account/password_reset_email.html',
        html_email_template_name='account/password_reset_email.html',
        success_url = reverse_lazy('account:password_reset_done')
    )<b>(request)</b>

При этом, возможно, имеет смысл просто подкласс PasswordResetView, и например, переписать метод .dispatch(..).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...