Index: django/shortcuts/__init__.py
===================================================================
--- django/shortcuts/__init__.py	(revision 10020)
+++ django/shortcuts/__init__.py	(working copy)
@@ -5,7 +5,7 @@
 """
 
 from django.template import loader
-from django.http import HttpResponse, Http404
+from django.http import HttpResponse, HttpResponseRedirect, Http404
 from django.db.models.manager import Manager
 from django.db.models.query import QuerySet
 
@@ -60,3 +60,11 @@
     if not obj_list:
         raise Http404('No %s matches the given query.' % queryset.model._meta.object_name)
     return obj_list
+
+def redirect( obj ):
+    """
+    Returns a HttpResponseRedirect, calling get_absolute_url() on the passed
+    argument if it exists.
+    """
+    redirect_to = hasattr(obj, 'get_absolute_url') and obj.get_absolute_url() or obj
+    return HttpResponseRedirect( redirect_to )
Index: docs/topics/http/shortcuts.txt
===================================================================
--- docs/topics/http/shortcuts.txt	(revision 10020)
+++ docs/topics/http/shortcuts.txt	(working copy)
@@ -151,3 +151,28 @@
         my_objects = list(MyModel.objects.filter(published=True))
         if not my_objects:
             raise Http404
+
+``redirect``
+============
+
+``django.shortcuts.redirect`` returns an ``HttpResponseRedirect`` object with
+the given string or model instance.
+
+Required arguments
+------------------
+
+``redirect_to``
+    Either a string, or any object with a ``get_absolute_url()`` method defined
+    for it.
+
+Example
+-------
+
+The following example redirects to a newly-created model instance::
+
+    from django.shortcuts import redirect
+
+    def my_view(request):
+        if request.method == 'POST':
+            # Create a model instance here...
+            return redirect(model_inst)
