Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sainipray/b4959948dc3b2d7f1ab7cd96beeaa3e8 to your computer and use it in GitHub Desktop.
Save sainipray/b4959948dc3b2d7f1ab7cd96beeaa3e8 to your computer and use it in GitHub Desktop.
Django's session required decorator
#-*- coding:utf-8 -*-
from functools import wraps
from django.contrib import messages
from django.shortcuts import redirect
def session_required(session_key, fail_redirect_to):
def _session_required(view_func):
@wraps(view_func)
def __session_required(request, *args, **kwargs):
try:
session = request.session.get(session_key)
if session is None:
raise ValueError('Cannot use None at session value')
except KeyError as e:
messages.error(request, 'session key not found')
return redirect(fail_redirect_to)
except ValueError as e:
messages.error(request, e.message)
return redirect(fail_redirect_to)
else:
return view_func(request, *args, **kwargs)
return __session_required
return _session_required
@talesmm14
Copy link

Very good

@subhale
Copy link

subhale commented Feb 22, 2023

How I use this in my Django's views.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment