Переопределение метода dispatch() в PasswordResetConfirmView

Я написал класс, который наследуется от PasswordResetConfirmView

PasswordResetConfirmView можно найти здесь: https://github.com/django/django/blob/7f4fc5cbd4c26e137a1abdd9bd603804ddc0e769/django/contrib/auth/views.py#L260

Вот часть класса, которую я написал (ничего революционного, я знаю!):

    class PwdResetConfirm(PasswordResetConfirmView):
        template_name = 'account/password_reset_confirm.html'
        success_url = reverse_lazy('two_factor:login')
        form_class = PwdChangeForm

Я хочу изменить поведение метода PasswordResetConfirmView dispatch() так, чтобы при неудачном сбросе пароля создавалось сообщение, поэтому строки в PasswordResetConfirmView:

    # Display the "Password reset unsuccessful" page.
    return self.render_to_response(self.get_context_data())

фактически превратится в:

    messages.success(self.request, _(mark_safe(
          'Your password change link appears to be invalid.')))

    # Display the "Password reset unsuccessful" page.
    return self.render_to_response(self.get_context_data())

Я новичок в переопределении классов и поэтому даже не уверен, с чего начать.

Вкратце, мой вопрос таков:

Как добавить сообщение в метод dispatch() класса PasswordResetConfirmView, не переопределяя весь метод?

Объяснение этого решения включено в мой первоначальный вопрос выше.

from django.contrib.messages import get_messages

class PwdResetConfirm(PasswordResetConfirmView):
    template_name = 'account/password_reset_confirm.html'
    success_url = reverse_lazy('two_factor:login')
    form_class = PwdChangeForm

    def get_context_data(self, **kwargs):
        context = super(PwdResetConfirm, self).get_context_data(**kwargs)

        if not context['validlink']:
            messages.success(self.request,
                     _('Your password change link appears to be invalid.'))
            context.update({'messages': get_messages(self.request)})

        return context
Вернуться на верх