djangoがユーザー名ではなくメールでユーザーを認証するようにしたい。1つの方法は、ユーザー名の値として電子メールの値を提供することですが、私はそれを望んでいません。理由は、私はURLを持っている/profile/<username>/ので、URLを持つことができません/profile/abcd@gmail.com/。
もう1つの理由は、すべての電子メールが一意であるということですが、ユーザー名がすでに使用されている場合があります。したがって、ユーザー名をとして自動作成していますfullName_ID。
Djangoにメールで認証させるように変更するにはどうすればよいですか?
これが私がユーザーを作成する方法です。
username = `abcd28`
user_email = `abcd@gmail.com`
user = User.objects.create_user(username, user_email, user_pass)
これが私がログインする方法です。
email = request.POST['email']
password = request.POST['password']
username = User.objects.get(email=email.lower()).username
user = authenticate(username=username, password=password)
login(request, user)
最初にユーザー名を取得する以外に、ログインの他の方法はありますか?