Skip to content

Commit

Permalink
Fixed #634 -- Changed shortcut view to accept get_absolute_url()s tha…
Browse files Browse the repository at this point in the history
…t return URLs starting with http. Thanks, Hugo

git-svn-id: http://code.djangoproject.com/svn/django/trunk@903 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
adrianholovaty committed Oct 17, 2005
1 parent 0bb68cd commit 383704a
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions django/views/defaults.py
Expand Up @@ -10,8 +10,12 @@ def shortcut(request, content_type_id, object_id):
obj = content_type.get_object_for_this_type(pk=object_id)
except ObjectDoesNotExist:
raise Http404, "Content type %s object %s doesn't exist" % (content_type_id, object_id)
if not hasattr(obj, 'get_absolute_url'):
try:
absurl = obj.get_absolute_url()
except AttributeError:
raise Http404, "%s objects don't have get_absolute_url() methods" % content_type.name
if absurl.startswith('http://'):
return httpwrappers.HttpResponseRedirect(absurl)
object_domain = None
if hasattr(obj, 'get_site_list'):
site_list = obj.get_site_list()
Expand All @@ -27,8 +31,8 @@ def shortcut(request, content_type_id, object_id):
except sites.SiteDoesNotExist:
pass
if not object_domain:
return httpwrappers.HttpResponseRedirect(obj.get_absolute_url())
return httpwrappers.HttpResponseRedirect('http://%s%s' % (object_domain, obj.get_absolute_url()))
return httpwrappers.HttpResponseRedirect(absurl)
return httpwrappers.HttpResponseRedirect('http://%s%s' % (object_domain, absurl))

def page_not_found(request):
"""
Expand Down

0 comments on commit 383704a

Please sign in to comment.