def match_func_by_method (func) : def wrapper (request, **kwargs) : load_post_and_files(request) try : if request.META["REQUEST_METHOD"] not in ("GET", "POST", "DELETE", "PUT", ) : __method = "GET" else : __method = request.META["REQUEST_METHOD"] __name = "%s_%s" % \ ( \ request.META["REQUEST_METHOD"].lower(), \ func.func_name \ ) if not func.func_globals.has_key(__name) : return func(request, **kwargs) else : return func.func_globals.get(__name)(request, getattr(request, __method).copy(), **kwargs) except Exception, e : raise return wrapper