import logging from django.core.management.base import BaseCommand from django.utils import timezone from university.models import UserCourse logger = logging.getLogger(__name__) class Command(BaseCommand): def handle(self, *args, **options): expired_user_courses = UserCourse.objects.filter( expires_at__lte=timezone.now()) expired_user_courses_details = expired_user_courses.select_related('user', 'course').values( 'user_id', 'user__username', 'course_id', 'course__title', 'expires_at', 'created_at', 'created_by_id', 'created_by__username') for euc_detail in expired_user_courses_details: logger.info( 'UserCourse Expired. user: {}({}), course: {}({}), ' 'expires_at: {}, created_at: {}, created_by: {}({}) '.format( euc_detail['user__username'], euc_detail['user_id'], euc_detail['course__title'], euc_detail['course_id'], euc_detail['expires_at'], euc_detail['created_at'], euc_detail['created_by__username'], euc_detail['created_by_id'])) expired_user_courses.delete()