""" Management команда для очистки кэша Django. """ from django.core.management.base import BaseCommand from django.core.cache import cache from django.conf import settings class Command(BaseCommand): help = 'Очищает весь кэш Django' def add_arguments(self, parser): parser.add_argument( '--pattern', type=str, help='Паттерн для очистки конкретных ключей (например, "mentor_dashboard_*")', ) def handle(self, *args, **options): pattern = options.get('pattern') if pattern: # Очистка по паттерну (только для Redis) if hasattr(cache, 'delete_pattern'): deleted = cache.delete_pattern(pattern) self.stdout.write( self.style.SUCCESS( f'Удалено ключей по паттерну "{pattern}": {deleted}' ) ) else: self.stdout.write( self.style.WARNING( 'Очистка по паттерну доступна только для Redis. ' 'Используется полная очистка кэша.' ) ) cache.clear() self.stdout.write(self.style.SUCCESS('Кэш полностью очищен')) else: # Полная очистка кэша cache.clear() self.stdout.write( self.style.SUCCESS('✓ Кэш Django успешно очищен') ) # Показываем информацию о бэкенде кэша cache_backend = settings.CACHES['default']['BACKEND'] self.stdout.write(f'Бэкенд кэша: {cache_backend}')