Further SQL optimizations

This commit is contained in:
Raphael Michel
2016-11-08 16:58:48 +01:00
parent 4c80ec17bf
commit 37598ed914
8 changed files with 65 additions and 23 deletions

View File

@@ -2,6 +2,7 @@ from datetime import timedelta
from decimal import Decimal
from itertools import groupby
from django.db.models import Sum
from django.utils.functional import cached_property
from django.utils.timezone import now
@@ -106,6 +107,17 @@ def get_cart(request):
return request._cart_cache
def get_cart_total(request):
if not hasattr(request, '_cart_total_cache'):
if hasattr(request, '_cart_cache'):
request._cart_total_cache = sum(i.price for i in request._cart_cache)
else:
request._cart_total_cache = CartPosition.objects.filter(
cart_id=request.session.session_key, event=request.event
).aggregate(sum=Sum('price'))['sum']
return request._cart_total_cache
class EventViewMixin:
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)