Django 4.1: Невозможно настроить PasswordChangeForm для общих представлений


Я пытаюсь создать представление для сброса пароля, Но я пытаюсь использовать `django.contrib.auth.forms.PasswordChangeForm` для использования формы в представлении, Но есть проблема!

В django.contrib.auth.forms.SetPasswordForm функции __init__ формы для работы формы необходим пользователь , И я не знаю, как это реализовать или убрать .
В основном, что я понял об этой форме, так это то, что это глобальный url, Но мои url следуют этому пути:

'u/<slug:slug>/account/password/
Я хотел бы знать, как переписать функцию
таким образом, чтобы она не испортила функцию родителя(__init__) `forms.Forminit или как-то иначе предоставить пользователю форму.

Сейчас, если я пытаюсь запустить код, то получаю ошибку:
SetPasswordForm.init() missing 1 required positional argument: 'user'

forms.py:

class UserPasswordChangeForm(PasswordChangeForm):
    class Meta:
        model = User #Not sure if this even does anything with PasswordChangeForm
        fields = ('old_password', 'new_password1', 'new_password2')

views.py:

class UserPasswordChangeView(UpdateView):
    model = User
    form_class = UserPasswordChangeForm
    template_name = 'auth/password.html'

urls.py:

path('u/<slug:slug>/account/password/', UserPasswordChangeView.as_view(), name='password'),

используемая модель пользователя (если необходимо):

class User(AbstractUser):
    slug = models.SlugField(blank=False, null=False)

    def get_absolute_url(self):
        return reverse('profile', kwargs={'slug': self.slug})
Вернуться на верх