Переопределение метода 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