Добрый день, SO!не может передать параметр 'user' в ChangePasswordForm в django
Я изучаю Django (1.8) с классами. Сам Django предоставляет модуль аутентификации с возможностью изменения пароля пользователя. При использовании PasswordChangeForm в Джанго (который расширяет SetPasswordForm Джанго), я натыкаюсь на следующее сообщение об ошибке:
init() missing 1 required positional argument: 'user'
Когда я смотрю на класс SetPasswordForm, я могу видеть это требует пользовательский объект в качестве параметра ,
def __init__(self, user, *args, **kwargs):
self.user = user
super(SetPasswordForm, self).__init__(*args, **kwargs)
Что я изначально делать?
Во-первых, на мой взгляд, я просто назначен PasswordChangeForm в Джанго:
class ChangePassword(LoginRequiredMixin, FormView):
template_name = 'users/reset_password.html'
form_class = PasswordChangeForm
Что привело к ошибке, конечно, потому что ни один пользователь-объект не предусмотрен.
Итак, что я попытался решить эту проблему?
Попытка один: Пользовательские формы, который наследует от PasswordChangeForm и добавляет метод инициализации.
Поскольку PasswordChangeForm не имеет инициализации метод, я упаковали новый класс формы под названием MyPasswordChangeForm, который наследуется от PasswordChangeForm и добавляет INIT:
class MyPasswordChangeForm(PasswordChangeForm):
def __init__(self, request, *args, **kwargs):
super(MyPasswordChangeForm, self).__init__(request.user, *args, **kwargs)
Ожидаемый результат: MyPasswordChangeForm-> унаследовать от PasswordChangeForm и добавить init-> супер init-> выполнить Инициализировать SetPasswordForm
Фактический результат: супер зовет LoginRequiredMixin:
init() missing 1 required positional argument: 'request'
stack-tr l:80 return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)
попытка «два»: незначительные изменения Изменение супер-> MyPasswordChangeFrom для супер-> PasswordChangeForm
Покушение три: используя подмешать, но имел такой же результат, как и выше, к сожалению.
Попытка четыре: еще не сделано, но будет ли окончательный вариант? Но должен быть способ использовать формы джанго как можно больше.
Так что мой вопрос ... Может кто-нибудь дать подсказку или небольшое объяснение о том, как я могу передать (с проверкой подлинности) пользовательский объект SetPasswordForm в Джанго с помощью PasswordChangeForm Джанго, так что я могу использовать столько, сколько возможных существующих форм.
Заранее благодарен!