예제 #1
0
#coding: utf-8
from .models import RequestLog
from django.utils._threading_local import local


_thread_locals = local()


class RequestLogMiddleware(object):

    def process_request(self, request):
        RequestLog.objects.save_from_request(request)


def get_current_request():
    """
      returns the request object for this thead
    """
    return getattr(_thread_locals, "request", None)


class ThreadLocalMiddleware(object):
    """
      Simple middleware that adds the request object in thread local storage.
    """

    def process_request(self, request):
        _thread_locals.request = request
예제 #2
0
from google.appengine.api import apiproxy_stub_map
from google.appengine.ext import db
from django.dispatch import Signal
from django.db.models import signals
from django.utils._threading_local import local
from functools import wraps

# Add signals which can be run after a transaction has been committed
signals.post_save_committed = Signal()
signals.post_delete_committed = Signal()

local = local()

# Patch transaction handlers, so we can support post_xxx_committed signals
run_in_transaction = db.run_in_transaction
if not hasattr(run_in_transaction, 'patched'):

    @wraps(run_in_transaction)
    def handle_signals(*args, **kwargs):
        try:
            if not getattr(local, 'in_transaction', False):
                local.in_transaction = True
                local.notify = []
            result = run_in_transaction(*args, **kwargs)
        except:
            local.in_transaction = False
            local.notify = []
            raise
        else:
            commit()
            return result
예제 #3
0
from google.appengine.api import apiproxy_stub_map
from google.appengine.ext import db
from django.dispatch import Signal 
from django.db.models import signals
from django.utils._threading_local import local
from functools import wraps

# Add signals which can be run after a transaction has been committed
signals.post_save_committed = Signal()
signals.post_delete_committed = Signal()

local = local()

# Patch transaction handlers, so we can support post_xxx_committed signals
run_in_transaction = db.run_in_transaction
if not hasattr(run_in_transaction, 'patched'):
    @wraps(run_in_transaction)
    def handle_signals(*args, **kwargs):
        try:
            if not getattr(local, 'in_transaction', False):
                local.in_transaction = True
                local.notify = []
            result = run_in_transaction(*args, **kwargs)
        except:
            local.in_transaction = False
            local.notify = []
            raise
        else:
            commit()
            return result
    handle_signals.patched = True
예제 #4
0
 def __init__(self):
     self.local = local()