From 589716144c4254dfc5af9b1e20fc08952b88b9b0 Mon Sep 17 00:00:00 2001
From: Awais Jibran <awaisdar001@gmail.com>
Date: Wed, 3 Mar 2021 10:45:48 +0500
Subject: [PATCH] refactor: use q objects when fetching user using an
 identifier (#26726)

* refactor: use q objects when fetching user using an identifier #26683

* Nit
---
 .../management/commands/regenerate_user.py            | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/lms/djangoapps/certificates/management/commands/regenerate_user.py b/lms/djangoapps/certificates/management/commands/regenerate_user.py
index 7708877e0bb..fb260403acd 100644
--- a/lms/djangoapps/certificates/management/commands/regenerate_user.py
+++ b/lms/djangoapps/certificates/management/commands/regenerate_user.py
@@ -5,7 +5,8 @@ import copy
 import logging
 
 from django.contrib.auth import get_user_model
-from django.core.management.base import BaseCommand
+from django.core.management.base import BaseCommand, CommandError
+from django.db.models import Q
 from opaque_keys.edx.keys import CourseKey
 
 from lms.djangoapps.badges.events.course_complete import get_completion_badge
@@ -75,10 +76,10 @@ class Command(BaseCommand):
         course_id = CourseKey.from_string(options['course'])
         user = options['username']
 
-        if '@' in user:
-            student = User.objects.get(email=user, courseenrollment__course_id=course_id)
-        else:
-            student = User.objects.get(username=user, courseenrollment__course_id=course_id)
+        kwargs = (Q(username=user) | Q(email=user)) & Q(courseenrollment__course_id=course_id)
+        student = User.objects.filter(kwargs).first()
+        if not student:
+            raise CommandError(f"User {user} does not exist.")
 
         course = modulestore().get_course(course_id, depth=2)
 
-- 
GitLab