I've tried a few different things. First I did this:
class UserAdmin(UserAdmin):
form = MySetPasswordForm
# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
And I got this error:
<class 'elex_apis.energy.webservice.admin.UserAdmin'>: (admin.E016)
The value of 'form' must inherit from 'BaseModelForm'.
So then I changed MySetPasswordForm to inherit from BaseModelForm and
then I got this error:
__init__() missing 1 required positional argument: 'user'
So then I added the user param so now MySetPasswordForm looked like this:
class MySetPasswordForm(BaseModelForm):
def __init__(self, user, *args, **kwargs):
super(MySetPasswordForm, self).__init__(user, *args, **kwargs)
self.fields['password1'].validators.append(validate_password_strength)
But I still got the same error as before.
I can't believe it's this hard to add a password validator. It must be
a very common need, so clearly I must be missing something simple. Can
anyone please provide some assistance here.