Django

Code

Changeset 5461

Show
Ignore:
Timestamp:
06/11/07 09:30:53 (1 year ago)
Author:
mtredinnick
Message:

unicode: Fixed the urlencode filter to work with non-ASCII strings. Fixed a
similar error in HttpRedirect? processing.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/unicode/django/http/__init__.py

    r5374 r5461  
    22from Cookie import SimpleCookie 
    33from pprint import pformat 
    4 from urllib import urlencode, quote 
     4from urllib import urlencode 
    55from django.utils.datastructures import MultiValueDict 
    6 from django.utils.encoding import smart_str 
     6from django.utils.encoding import smart_str, iri_to_uri 
    77 
    88RESERVED_CHARS="!*'();:@&=+$,/?%#[]" 
     
    335335    def __init__(self, redirect_to): 
    336336        HttpResponse.__init__(self) 
    337         self['Location'] = quote(redirect_to, safe=RESERVED_CHARS
     337        self['Location'] = iri_to_uri(redirect_to
    338338 
    339339class HttpResponsePermanentRedirect(HttpResponse): 
     
    342342    def __init__(self, redirect_to): 
    343343        HttpResponse.__init__(self) 
    344         self['Location'] = quote(redirect_to, safe=RESERVED_CHARS
     344        self['Location'] = iri_to_uri(redirect_to
    345345 
    346346class HttpResponseNotModified(HttpResponse): 
  • django/branches/unicode/django/template/defaultfilters.py

    r5314 r5461  
    176176def urlencode(value): 
    177177    "Escapes a value for use in a URL" 
    178     import urllib 
    179     return force_unicode(urllib.quote(value)
     178    from django.utils.http import urlquote 
     179    return urlquote(value
    180180urlencode = stringfilter(urlencode) 
    181181 
  • django/branches/unicode/tests/regressiontests/defaultfilters/tests.py

    r5317 r5461  
    112112 
    113113 
    114 >>> urlencode(u'jack & jill') 
    115 u'jack%20%26%20jill' 
     114>>> urlencode(u'fran\xe7ois & jill') 
     115u'fran%C3%A7ois%20%26%20jill' 
    116116>>> urlencode(1) 
    117117u'1' 
    118118>>> iriencode(u'S\xf8r-Tr\xf8ndelag') 
    119119u'S%C3%B8r-Tr%C3%B8ndelag' 
    120 >>> iriencode(urlencode(u'jack & jill')) 
    121 u'jack%20%26%20jill' 
     120>>> iriencode(urlencode(u'fran\xe7ois & jill')) 
     121u'fran%C3%A7ois%20%26%20jill' 
    122122 
    123123>>> urlizetrunc(u'http://short.com/', 20)