From 1c8a148c8465f2133402af8f0a49d9943bf19986 Mon Sep 17 00:00:00 2001 From: ygm1881 <2302253692@qq.com> Date: Sun, 17 Apr 2022 22:41:55 +0800 Subject: [PATCH] enroll --- enroll/email.py | 16 ++++++++-------- enroll/serializer.py | 21 ++++++++++++++++++++- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/enroll/email.py b/enroll/email.py index 7efcd81..064229f 100644 --- a/enroll/email.py +++ b/enroll/email.py @@ -41,14 +41,14 @@ def send_code_email(email, send_type="register"): email_title = "" email_body = "" # 如果为注册类型 - if send_type == "register": - email_title = "注册激活" - # email_body = "请点击下面的链接激活你的账号:http://127.0.0.1:8000/active/{0}".format(code) - email_body = "您的邮箱注册验证码为:{0}, 该验证码有效时间为两分钟,请及时进行验证。".format(code) - # 发送邮件 - send_status = send_mail(email_title, email_body, settings.EMAIL_FROM, [email]) - if not send_status: - return False + # if send_type == "register": + # email_title = "注册激活" + # # email_body = "请点击下面的链接激活你的账号:http://127.0.0.1:8000/active/{0}".format(code) + # email_body = "您的邮箱注册验证码为:{0}, 该验证码有效时间为两分钟,请及时进行验证。".format(code) + # # 发送邮件 + # send_status = send_mail(email_title, email_body, settings.EMAIL_FROM, [email]) + # if not send_status: + # return False if send_type == "retrieve": email_title = "找回密码" email_body = "您的邮箱注册验证码为:{0}, 该验证码有效时间为两分钟,请及时进行验证。".format(code) diff --git a/enroll/serializer.py b/enroll/serializer.py index 4b1cc27..e4c07bb 100644 --- a/enroll/serializer.py +++ b/enroll/serializer.py @@ -1,6 +1,8 @@ from rest_framework import serializers +from rest_framework.response import Response from rest_framework.validators import UniqueValidator from enroll.models import Department, New_member, EmailVerifyRecord +import time class Department_serializer(serializers.ModelSerializer): @@ -55,6 +57,23 @@ class Send_email_serializer(serializers.Serializer): # code = serializers.CharField(max_length=10) email = serializers.EmailField(max_length=50, validators=[UniqueValidator( - queryset=New_member.objects.all() and EmailVerifyRecord.objects.all(), + queryset=New_member.objects.all(), message="该邮箱已存在")], error_messages={"max_length": "邮箱过长", "invalid": "请输入正确格式的邮箱"}) + + def validate_email(self, data): + # print(data) + try: + oj = EmailVerifyRecord.objects.get(email=data) + # print(oj.email)/ + send_time = str(oj.send_time).split('+')[0].split('.')[0] + send_time = time.mktime(time.strptime(send_time, '%Y-%m-%d %X')) + now = time.time() + # print(f"now={now},send={send_time}") + if now - send_time < 120: + raise serializers.ValidationError(code="verification_code", detail="请勿频繁发送验证码") + else: + # print(oj.email) + oj.delete() + except EmailVerifyRecord.DoesNotExist: + pass