- create
company/middleware/SessionMiddleware.py
from django.conf import settings
from django.contrib.sessions.middleware import SessionMiddleware
from importlib import import_module
class SessionMiddleware(SessionMiddleware):
def process_request(self, request):
engine = import_module(settings.SESSION_ENGINE)
session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME, None)
if session_key is None:
form = {}
if request.method == 'GET':
form = request.GET
elif request.method == 'POST':
form = request.POST
session_key = form.get("sessionid", None)
request.session = engine.SessionStore(session_key)
if not request.session.exists(request.session.session_key):
print "creating"
request.session.create()
- add
company.middleware.SessionMiddleware to MIDDLEWARE_CLASSES of your project settings.py
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
# Above are django standard middlewares
'company.middleware.SessionMiddleware',
)
from django.contrib.auth.middleware import AuthenticationMiddleware
from django.http import HttpResponseRedirect
class AuthenticationMiddleware(AuthenticationMiddleware):
def process_request(self, request):
path = request.get_full_path()
if path.startswith('/admin'):
if not request.user.is_authenticated():
return HttpResponseRedirect('/login')