diff --git a/src/pretix/multidomain/middlewares.py b/src/pretix/multidomain/middlewares.py index 154fba225..6b4b9103e 100644 --- a/src/pretix/multidomain/middlewares.py +++ b/src/pretix/multidomain/middlewares.py @@ -67,6 +67,14 @@ class SessionMiddleware(BaseSessionMiddleware): a custom domain. """ + def process_request(self, request): + super().process_request(request) + + if not request.session.session_key: + # We need to create session even if we do not yet store something there, because we need the session + # key for e.g. saving the user's cart + request.session.create() + def process_response(self, request, response): try: accessed = request.session.accessed diff --git a/src/pretix/presale/middleware.py b/src/pretix/presale/middleware.py index 757d85c8e..15509e897 100644 --- a/src/pretix/presale/middleware.py +++ b/src/pretix/presale/middleware.py @@ -18,11 +18,6 @@ class EventMiddleware(MiddlewareMixin): if redirect: return redirect - if '_' not in request.session: - # We need to create session even if we do not yet store something there, because we need the session - # key for e.g. saving the user's cart - request.session['_'] = '_' - def process_response(self, request, response): if hasattr(request, '_namespace') and request._namespace == 'presale' and hasattr(request, 'event'): for receiver, r in process_response.send(request.event, request=request, response=response):