Reputation: 20915
I want to run a function before any view in my app is loaded, so I wrote my own middleware. It is in a file called "DoBeforeMiddleWare.py" located in the folder "my_app_name" and, for now, looks like
class DoBeforeMiddleWare:
def process_request(self, request):
return None
def process_view(self, request, view_func, view_args, view_kwargs):
return None
I try to place this function in my list of middleware in settings.py:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'my_project_name.my_app_name.DoBeforeMiddleWare',
)
However, my app never loads after I restart passenger. Why? My app loads if I comment out the last line of |MIDDLEWARE_CLASSES|.
Upvotes: 0
Views: 796
Reputation: 3040
process_request
and process_view
must return None
or an HttpResponse
object (reference). If you want a no-op middleware, you should change them to return None, as follows:
class DoBeforeMiddleWare:
def process_request(self, request):
return None
def process_view(self, request, view_func, view_args, view_kwargs)
return None
Upvotes: 1