Когда вы выполняете POST на ^accounts/password/reset/$
, запускается функция django.contrib.auth.views.password_reset . Для проверки электронной почты будет использоваться класс по умолчанию django.contrib.auth.forms.PasswordResetForm .
Вы должны заметить, что электронное письмо отправляется только тем активным пользователям, которые соответствуют указанному письму, и только в том случае, если у них есть пригодный для использования пароль.
Попробуйте использовать следующую функцию с оболочкой управления Django:
from django.contrib.auth.models import get_user_model
def check_password_reset_cond(email):
for u in get_user_model().objects.filter(email__iexact=email):
assert u.is_active
assert u.has_usable_password()
Да, вы можете создать настраиваемого поставщика членства . Ваш провайдер реализует MembershipProvider , дающий вам полный контроль над созданием интерфейса между системой членства и расширенной схемой базы данных. Написание настраиваемого поставщика членства для вашего веб-сайта ASP.NET 2.0 является подробным примером.
Ленивый способ сделать это - объединить имя учреждения и имя пользователя вместе, чтобы создать фактическое имя пользователя. .
Таким образом, у вас будет 3 разных имени пользователя: ABC & A09410515, GHA & A09410515 и & A09410515. Просто не позволяйте пользователю использовать & в имени пользователя.
Затем, прежде чем создавать пользователя или входить в систему, вы просто объединяете две строки вместе.
Я не могу придумать никаких серьезных проблем, которые не могут можно исправить простым взломом (например, отображением имени пользователя (используйте username.split ('&') [1] ), но сообщение JP определенно является «правильным» способом сделать это.
James
Вы можете использовать имя приложения в качестве учреждения, таким образом у вас будет одно и то же имя пользователя в разных приложениях
Родриго.