Как проверить, существует ли уже введенный 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:
...
Вернуться на верх