diff --git a/polls/views.py b/polls/views.py index fe38fe3..6ecc749 100644 --- a/polls/views.py +++ b/polls/views.py @@ -8,6 +8,7 @@ import datetime from .models import VerifyCode from .utils import generate_code, send_sms_code + def index(request): username = request.GET.get('username') password = request.GET.get('password') @@ -29,11 +30,11 @@ def polls_login(request): phone = request.POST.get('phone') password = request.POST.get('password') UserModel = get_user_model() - user = UserModel.objects.filter(first_name=phone).first() + user = UserModel.objects.filter(username=phone).first() if not user: return JsonResponse({'status': 'error', 'message': '用户名或密码错误'}) - u = authenticate(request, username=user.username, password=password) + u = authenticate(request, username=phone, password=password) if u is not None: login(request, u) token = Token.objects.get_or_create(user=u) @@ -62,7 +63,8 @@ def send_code(request): if not phone: return JsonResponse({'status': 'error', 'message': '手机号不正确'}) - exist_code = VerifyCode.objects.filter(phone=phone, category=category).first() + exist_code = VerifyCode.objects.filter( + phone=phone, category=category).first() if exist_code and exist_code.in_progress(): return JsonResponse({'status': 'error', 'message': '验证码使用中'}) @@ -77,15 +79,21 @@ def send_code(request): return JsonResponse({'status': 'error', 'message': '验证码发送失败'}) - @csrf_exempt def register_step_one(request): if request.method == 'GET': return HttpResponse(status=405) phone = request.POST.get('phone') code = request.POST.get('code') - exist_code = VerifyCode.objects.filter(phone=phone, code=code, category=0).exist() - if exist_code.in_progress(): + + UserModel = get_user_model() + is_exists = UserModel.objects.filter(username=phone).exists() + if is_exists: + return JsonResponse({'status': 'error', 'message': '该手机号已经使用'}) + + verify_code = VerifyCode.objects.filter( + phone=phone, code=code, category=0).first() + if verify_code and verify_code.in_progress(): return JsonResponse({'status': 'success', 'message': {phone: phone}}) else: return JsonResponse({'status': 'error', 'message': '验证码超时,请重发'}) @@ -98,8 +106,10 @@ def register_step_two(request): phone = request.POST.get('phone') name = request.POST.get('name') gender = request.POST.get('gender') + password = request.POST.get('password') organization = request.POST.get('organization') - # create user + UserModel = get_user_model() + UserModel.objects.create_user(username=phone, password=password) return JsonResponse({'status': 'success', 'message': '注册成功'}) @@ -109,8 +119,9 @@ def password_recover_step_one(request): return HttpResponse(status=405) phone = request.POST.get('phone') code = request.POST.get('code') - exist_code = VerifyCode.objects.filter(phone=phone, code=code, category=1).exist() - if exist_code.in_progress(): + verify_code = VerifyCode.objects.filter( + phone=phone, code=code, category=1).first() + if verify_code and verify_code.in_progress(): return JsonResponse({'status': 'success', 'message': {phone: phone}}) else: return JsonResponse({'status': 'error', 'message': '验证码超时,请重发'}) @@ -123,3 +134,11 @@ def password_recover_step_two(request): phone = request.POST.get('phone') password = request.POST.get('password') password_confirm = request.POST.get('password_confirm') + if password != password_confirm: + return JsonResponse({'status': 'error', 'message': '两次密码输入不一致'}) + UserModel = get_user_model() + user = UserModel.objects.filter(username=phone).first() + if not user: + return JsonResponse({'status': 'error', 'message': '用户名不存在'}) + user.set_password(password) + return JsonResponse({'status': 'success', 'message': {phone: phone}}) \ No newline at end of file