django가 사용자 이름이 아닌 이메일을 통해 사용자를 인증하기를 원합니다. 한 가지 방법은 이메일 값을 사용자 이름 값으로 제공 할 수 있지만 원하지 않습니다. 이유는 URL /profile/<username>/
이 있으므로 URL을 가질 수 없습니다 /profile/abcd@gmail.com/
.
또 다른 이유는 모든 이메일이 고유하지만 때때로 사용자 이름이 이미 사용되고 있기 때문입니다. 따라서 사용자 이름을 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)
사용자 이름을 먼저 얻는 것 외에 다른 로그인이 있습니까?