SetPasswordForm: очищается, только если установлено поле new_password1 или new_password2

Мне нужно подтвердить updatePasswordForm только если new_password1 или new_password2 не пусты. Я хочу сделать поля пароля необязательными, они предназначены только для обновления пароля. В представлении есть не только форма updatePasswordForm.

Я использую следующий подход:

.forms

class UpdatePasswordForm(SetPasswordForm):
    class Meta:
        model = Account
        fields = ("new_password1","new_password2")
    
    def __init__(self, *args, **kwargs):
        super(SetAdminPasswordForm, self).__init__(*args, **kwargs)
        self.fields['new_password1'].required = False
        self.fields['new_password2'].required = False

.вид (CBV):

Это работает, но я думаю, что это не лучший вариант. Я хотел бы использовать чистый метод из UpdatePasswordForm, что-то вроде этого:

class UpdatePasswordForm(SetPasswordForm):
    class Meta:
        model = Account
        fields = ("new_password1","new_password2")

    def clean(self):
        cleaned_data = super().clean()
        new_password1 = cleaned_data.get('new_password1')
        new_password2 = cleaned_data.get('new_password2')
        if new_password1 or new_password2:
            # proceed with SetPasswordForm.clean
Вернуться на верх