From 6810db24d99643479924046a6587c10fc9ad5ad8 Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Tue, 26 Aug 2014 17:40:36 -0700 Subject: [PATCH] add support for getting current request object from within a model --- planetstack/core/middleware.py | 13 +++++++++++++ planetstack/planetstack/settings.py | 2 ++ 2 files changed, 15 insertions(+) create mode 100644 planetstack/core/middleware.py diff --git a/planetstack/core/middleware.py b/planetstack/core/middleware.py new file mode 100644 index 0000000..1401cd6 --- /dev/null +++ b/planetstack/core/middleware.py @@ -0,0 +1,13 @@ +from threading import local + +_active = local() + +def get_request(): + if not hasattr(_active, "request"): + raise Exception("Please add 'core.middleware.GlobalRequestMiddleware' to /opt/planetstack/planetstack/settings.py:MIDDLEWARE_CLASSES") + return _active.request + +class GlobalRequestMiddleware(object): + def process_view(self, request, view_func, view_args, view_kwargs): + _active.request = request + return None diff --git a/planetstack/planetstack/settings.py b/planetstack/planetstack/settings.py index 215501a..b694373 100644 --- a/planetstack/planetstack/settings.py +++ b/planetstack/planetstack/settings.py @@ -111,6 +111,7 @@ MIDDLEWARE_CLASSES = ( 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', + 'core.middleware.GlobalRequestMiddleware', # Uncomment the next line for simple clickjacking protection: # 'django.middleware.clickjacking.XFrameOptionsMiddleware', ) @@ -261,3 +262,4 @@ LOGGING = { BIGQUERY_TABLE = getattr(config, "bigquery_table", "demoevents") DISABLE_MINIDASHBOARD = getattr(config, "gui_disable_minidashboard", False) + -- 2.47.0