from .models import Theme def get_active_theme(request): objs_manager = Theme.objects objs_active_qs = objs_manager.filter(active=True) objs_active_ls = list(objs_active_qs) objs_active_count = len(objs_active_ls) if objs_active_count == 0: obj = objs_manager.all().first() if obj: obj.set_active() else: obj = objs_manager.create() elif objs_active_count == 1: obj = objs_active_ls[0] elif objs_active_count > 1: # for frame_record in inspect.stack(): # if frame_record[3]=='get_response': # request = frame_record[0].f_locals['request'] # user = request.user # break # else: # request = None user = request.user try: obj = objs_active_qs.filter(user=user).first() except: obj = objs_active_ls[-1] obj.set_active() return { 'theme': obj, }