Как проверить, существует ли уже введенный email в базе данных?
У меня проблема с программой, которую я пытаюсь разработать. У меня есть функция, которая отправляет OTP код пользователю, когда он запрашивает вход в систему. OTP код должен быть отправлен по электронной почте зарегистрированным пользователям. Проблема в том, что мой код сейчас принимает каждое письмо и не проверяет пользователей из базы данных. Как я могу это сделать?
это мой скрипт
и вот мой файл views.py
def generateOTP():
digits = "0123456789"
OTP = ""
for i in range(4):
OTP += digits[math.floor(random.random() * 10)]
return OTP
def send_otp(request):
if request.method == 'POST':
email = request.POST['email']
user = authenticate(email=email, request=request)
if user is not None:
o = generateOTP()
#email = EmailMessage(
# subject='OTP',
# body= ('OTP request', o),
# from_email=EMAIL_HOST_USER,
#to=[email],
#)
#mail.send()
print(o)
else:
messages.warning(request, 'No such emails exists')
return redirect('register')
Попробуйте проверить электронную почту и убедитесь, что она существует в вашей базе данных.
email = request.POST['email']
if validate_email(email) and User.objects.filter(email=email).exists():
...
else:
...