Index: django/views/decorators/http.py
===================================================================
--- django/views/decorators/http.py	(revision 1012)
+++ django/views/decorators/http.py	(working copy)
@@ -7,3 +7,25 @@
 from django.middleware.http import ConditionalGetMiddleware
 
 conditional_page = decorator_from_middleware(ConditionalGetMiddleware)
+
+# Decorators for disallowing access based on the value of
+# request.META['REQUEST_METHOD'].  These decorators will prevent the
+# calling of views whose operation depends on particular request
+# methods.  Note that if request.META['REQUEST_METHOD'] is not
+# present, the views will not be called.
+
+from django.utils.httpwrappers import HttpResponseForbidden
+
+def requires_POST(view_func):
+    def _requires_POST_wrapper(request, *args, **kwargs):
+        if request.META.get('REQUEST_METHOD', None) != 'POST':
+            return HttpResponseForbidden()
+        return view_func(request, *args, **kwargs)
+    return _requires_POST_wrapper
+
+def requires_GET(view_func):
+    def _requires_GET_wrapper(request, *args, **kwargs):
+        if request.META.get('REQUEST_METHOD', None) != 'GET':
+            return HttpResponseForbidden()
+        return view_func(request, *args, **kwargs)
+    return _requires_GET_wrapper
