diff --git a/lms/djangoapps/certificates/management/commands/regenerate_user.py b/lms/djangoapps/certificates/management/commands/regenerate_user.py index 7708877e0bbc89dfdb0593903eb8d7d7cf3a2e57..fb260403acd0cc810d57440eb951f86f6bfd6a59 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)