Address comments to r844 and r845.
Patch by: Pawel Solyga
Review by: to-be-reviewed
"""Decorators for views based on HTTP headers."""try: from functools import wrapsexcept ImportError: from django.utils.functional import wraps # Python 2.3, 2.4 fallback.from django.utils.decorators import decorator_from_middlewarefrom django.middleware.http import ConditionalGetMiddlewarefrom django.http import HttpResponseNotAllowedconditional_page = decorator_from_middleware(ConditionalGetMiddleware)def require_http_methods(request_method_list): """ Decorator to make a view only accept particular request methods. Usage:: @require_http_methods(["GET", "POST"]) def my_view(request): # I can assume now that only GET or POST requests make it this far # ... Note that request methods should be in uppercase. """ def decorator(func): def inner(request, *args, **kwargs): if request.method not in request_method_list: return HttpResponseNotAllowed(request_method_list) return func(request, *args, **kwargs) return wraps(func)(inner) return decoratorrequire_GET = require_http_methods(["GET"])require_GET.__doc__ = "Decorator to require that a view only accept the GET method."require_POST = require_http_methods(["POST"])require_POST.__doc__ = "Decorator to require that a view only accept the POST method."