这是您需要做的。查看https://docs.djangoproject.com/en/1.8/_modules/django/contrib/auth/forms/
类 PasswordResetForm 有一个方法 get_users:
def get_users(self, email):
"""Given an email, return matching user(s) who should receive a reset.
This allows subclasses to more easily customize the default policies
that prevent inactive users and users with unusable passwords from
resetting their password.
"""
active_users = get_user_model()._default_manager.filter(
email__iexact=email, is_active=True)
return (u for u in active_users if u.has_usable_password())
用这个函数覆盖这个方法:
def get_users(self, email):
"""Given an email, return matching user(s) who should receive a reset.
This allows subclasses to more easily customize the default policies
that prevent inactive users and users with unusable passwords from
resetting their password.
"""
active_users = get_user_model()._default_manager.filter(
email__iexact=email, is_active=True)
return active_users
为此,您将构建一个自定义表单并覆盖此方法。
class PasswordResetFormAllowNoPassword(PasswordResetForm):
def get_users(self, email):
active_users = get_user_model()._default_manager.filter(
email__iexact=email, is_active=True)
return active_users