Django

Code

Changeset 903

Show
Ignore:
Timestamp:
10/17/05 08:24:29 (3 years ago)
Author:
adrian
Message:

Fixed #634 -- Changed shortcut view to accept get_absolute_url()s that return URLs starting with http. Thanks, Hugo

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/views/defaults.py

    r867 r903  
    1111    except ObjectDoesNotExist: 
    1212        raise Http404, "Content type %s object %s doesn't exist" % (content_type_id, object_id) 
    13     if not hasattr(obj, 'get_absolute_url'): 
     13    try: 
     14        absurl = obj.get_absolute_url() 
     15    except AttributeError: 
    1416        raise Http404, "%s objects don't have get_absolute_url() methods" % content_type.name 
     17    if absurl.startswith('http://'): 
     18        return httpwrappers.HttpResponseRedirect(absurl) 
    1519    object_domain = None 
    1620    if hasattr(obj, 'get_site_list'): 
     
    2832        pass 
    2933    if not object_domain: 
    30         return httpwrappers.HttpResponseRedirect(obj.get_absolute_url()
    31     return httpwrappers.HttpResponseRedirect('http://%s%s' % (object_domain, obj.get_absolute_url())) 
     34        return httpwrappers.HttpResponseRedirect(absurl
     35    return httpwrappers.HttpResponseRedirect('http://%s%s' % (object_domain, absurl)) 
    3236 
    3337def page_not_found(request):