with open('expenses/views.py', 'r', encoding='utf-8') as f: content = f.read() # Add transaction and cache imports if 'from django.db import transaction' not in content: content = content.replace("from django.db.models import Sum, Count, F", "from django.db.models import Sum, Count, F\nfrom django.db import transaction") if 'from django.views.decorators.cache import cache_page' not in content: content = content.replace("from django.contrib.auth.decorators import login_required", "from django.contrib.auth.decorators import login_required\nfrom django.views.decorators.cache import cache_page") # Decorate dashboard with cache_page content = content.replace("@login_required\ndef dashboard(request):", "@login_required\n@cache_page(60 * 5) # Cache 5 minutos (Disponibilidad)\ndef dashboard(request):") # Add @transaction.atomic to expense_create content = content.replace("@login_required\ndef expense_create(request):", "@login_required\n@transaction.atomic # Integridad de datos\ndef expense_create(request):") with open('expenses/views.py', 'w', encoding='utf-8') as f: f.write(content)