""" Команда для инициализации предметов. Создает стандартный список предметов в базе данных. """ from django.core.management.base import BaseCommand from apps.schedule.models import Subject SUBJECTS = [ 'Русский язык', 'Литература', 'Родной язык и литература', 'Математика', 'Алгебра', 'Геометрия', 'Информатика и ИКТ', 'Иностранный язык', 'Второй иностранный язык', 'История', 'Обществознание', 'География', 'Биология', 'Физика', 'Химия', 'Окружающий мир', 'Основы религиозных культур и светской этики', 'Основы безопасности и защиты Родины (ОБЖ)', 'Астрономия', 'Музыка', 'Изобразительное искусство (ИЗО)', 'Технология', 'Физическая культура', 'Индивидуальный проект', ] class Command(BaseCommand): help = 'Инициализирует стандартный список предметов' def handle(self, *args, **options): created_count = 0 existing_count = 0 for subject_name in SUBJECTS: subject, created = Subject.objects.get_or_create( name=subject_name, defaults={'is_active': True} ) if created: created_count += 1 self.stdout.write( self.style.SUCCESS(f'✓ Создан предмет: {subject_name}') ) else: existing_count += 1 # Активируем предмет, если он был неактивен if not subject.is_active: subject.is_active = True subject.save() self.stdout.write( self.style.WARNING(f'→ Активирован предмет: {subject_name}') ) else: self.stdout.write( self.style.NOTICE(f' Предмет уже существует: {subject_name}') ) self.stdout.write( self.style.SUCCESS( f'\nГотово! Создано: {created_count}, уже существовало: {existing_count}' ) )