From e4608c0a35e68e10ad94fba35971be9978a1d7d4 Mon Sep 17 00:00:00 2001 From: Django Doctor Date: Tue, 2 Feb 2021 08:03:58 +0000 Subject: [PATCH] Fix some django anti-patterns --- apps/courses/views.py | 4 +++- apps/organization/views.py | 2 +- apps/users/views.py | 14 ++++++++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/apps/courses/views.py b/apps/courses/views.py index 70ecc3d..9df1e24 100644 --- a/apps/courses/views.py +++ b/apps/courses/views.py @@ -73,7 +73,9 @@ def get(self, request, course_id): if request.user.is_authenticated(): if UserFavorite.objects.filter(user=request.user, fav_id=course.id, fav_type=1): has_fav_course = True - if UserFavorite.objects.filter(user=request.user, fav_id=course.course_org.id, fav_type=2): + if UserFavorite.objects.filter( + user=request.user, fav_id=course.course_org_id, fav_type=2 + ): has_fav_org = True return render(request, 'course-detail.html', { diff --git a/apps/organization/views.py b/apps/organization/views.py index 33c830d..1f29f74 100644 --- a/apps/organization/views.py +++ b/apps/organization/views.py @@ -275,7 +275,7 @@ def get(self, request, teacher_id): has_teacher_faved = True has_org_faved = False - if UserFavorite.objects.filter(user=request.user, fav_type=2, fav_id=teacher.org.id): + if UserFavorite.objects.filter(user=request.user, fav_type=2, fav_id=teacher.org_id): has_org_faved = True return render(request, 'teacher-detail.html', { diff --git a/apps/users/views.py b/apps/users/views.py index a6dd5dc..5222431 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -94,8 +94,10 @@ def post(self, request): register_form = RegisterForm(request.POST) if register_form.is_valid(): email = request.POST.get('email', '') - if UserProfile.objects.filter(email=email): - return render(request, 'register.html', {'register_form': register_form, 'msg': '用户已经存在!'}) + if UserProfile.objects.filter(email=email).exists(): + return render( + request, 'register.html', {'register_form': register_form, 'msg': '用户已经存在!'} + ) password = request.POST.get('password', '') user_profile = UserProfile() @@ -122,7 +124,7 @@ class ActiveUserView(View): def get(self, request, active_code): # 为什么用 filter ? 因为用户可能注册了好多次,一个 email 对应了好多个 code all_records = EmailVerifyRecord.objects.filter(code=active_code) - if all_records: + if all_records.exists(): for records in all_records: email = records.email user = UserProfile.objects.get(email=email) @@ -152,7 +154,7 @@ class ResetView(View): def get(self, request, active_code): # 如果第二次进来,链接就失效 all_records = EmailVerifyRecord.objects.filter(code=active_code) - if all_records: + if all_records.exists(): for records in all_records: email = records.email return render(request, 'password_reset.html', {'email': email}) @@ -249,7 +251,7 @@ def get(self, request): email = request.GET.get('email', '') res = dict() - if UserProfile.objects.filter(email=email): + if UserProfile.objects.filter(email=email).exists(): res['email'] = '邮箱已注册' return HttpResponse(json.dumps(res), content_type='application/json') send_register_email(email, 'update_email') @@ -266,7 +268,7 @@ def post(self, request): existed_records = EmailVerifyRecord.objects.filter(email=email, code=code, send_type='update_email') res = dict() - if existed_records: + if existed_records.exists(): user = request.user user.email = email user.save()