18 lines
1.1 KiB
Python
18 lines
1.1 KiB
Python
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)
|