Ticket #333: 333.diff

File 333.diff, 7.4 KB (added by Maniac <Maniac@…>, 9 years ago)

splitting DEFAULT_MIME_TYPE into DEFAULT_CONTENT_TYPE and DEFAULT_CHARSET

  • django/utils/httpwrappers.py

     
    139139    "A basic HTTP response, with content and dictionary-accessed headers"
    140140    def __init__(self, content='', mimetype=None):
    141141        if not mimetype:
    142             from django.conf.settings import DEFAULT_MIME_TYPE
    143             mimetype = DEFAULT_MIME_TYPE
     142            from django.conf.settings import DEFAULT_CONTENT_TYPE, DEFAULT_CHARSET
     143            mimetype = DEFAULT_CONTENT_TYPE + '; charset=' + DEFAULT_CHARSET
    144144        self.content = content
    145145        self.headers = {'Content-Type':mimetype}
    146146        self.cookies = SimpleCookie()
  • django/conf/global_settings.py

     
    3232# notifications and other various e-mails.
    3333MANAGERS = ADMINS
    3434
    35 # Default MIME type to use for all HttpResponse objects, if a MIME type
    36 # isn't manually specified. This is directly used as the Content-Type header.
    37 DEFAULT_MIME_TYPE = 'text/html; charset=utf-8'
     35# Default content type and charset to use for all HttpResponse objects, if a MIME type
     36# isn't manually specified. These are used to construct the Content-Type header
     37# in the form DEFAULT_CONTENT_TYPE + '; charset=' + DEFAULT_CHARSET
     38DEFAULT_CONTENT_TYPE = 'text/html'
     39DEFAULT_CHARSET = 'utf-8'
    3840
    3941# E-mail address that error messages come from.
    4042SERVER_EMAIL = 'root@localhost'
  • django/core/formfields.py

     
    11from django.core import validators
    22from django.core.exceptions import PermissionDenied
    33from django.utils.html import escape
     4from django.conf import settings
    45
    56FORM_FIELD_ID_PREFIX = 'id_'
    67
     
    221222        self.validator_list = [self.isValidLength, self.hasNoNewlines] + validator_list
    222223
    223224    def isValidLength(self, data, form):
    224         if data and self.maxlength and len(data) > self.maxlength:
     225        if data and self.maxlength and len(data.decode(settings.DEFAULT_CHARSET)) > self.maxlength:
    225226            raise validators.ValidationError, "Ensure your text is less than %s characters." % self.maxlength
    226227
    227228    def hasNoNewlines(self, data, form):
     
    235236        if self.maxlength:
    236237            maxlength = 'maxlength="%s" ' % self.maxlength
    237238        if isinstance(data, unicode):
    238             data = data.encode('utf-8')
     239            data = data.encode(settings.DEFAULT_CHARSET)
    239240        return '<input type="text" id="%s" class="v%s%s" name="%s" size="%s" value="%s" %s/>' % \
    240241            (FORM_FIELD_ID_PREFIX + self.field_name, self.__class__.__name__, self.is_required and ' required' or '',
    241242            self.field_name, self.length, escape(data), maxlength)
     
    264265        if data is None:
    265266            data = ''
    266267        if isinstance(data, unicode):
    267             data = data.encode('utf-8')
     268            data = data.encode(settings.DEFAULT_CHARSET)
    268269        return '<textarea id="%s" class="v%s%s" name="%s" rows="%s" cols="%s">%s</textarea>' % \
    269270            (FORM_FIELD_ID_PREFIX + self.field_name, self.__class__.__name__, self.is_required and ' required' or '',
    270271            self.field_name, self.rows, self.cols, escape(data))
  • django/core/handlers/wsgi.py

     
    167167        response_headers = response.headers.items()
    168168        for c in response.cookies.values():
    169169            response_headers.append(('Set-Cookie', c.output(header='')))
    170         output = [response.get_content_as_string('utf-8')]
     170        output = [response.get_content_as_string(settings.DEFAULT_CHARSET)]
    171171        start_response(status, response_headers)
    172172        return output
  • django/core/handlers/modpython.py

     
    157157    for c in http_response.cookies.values():
    158158        mod_python_req.headers_out.add('Set-Cookie', c.output(header=''))
    159159    mod_python_req.status = http_response.status_code
    160     mod_python_req.write(http_response.get_content_as_string('utf-8'))
     160    from django.conf import settings
     161    mod_python_req.write(http_response.get_content_as_string(settings.DEFAULT_CHARSET))
    161162
    162163def handler(req):
    163164    # mod_python hooks into this function.
  • django/core/template.py

     
    5555'\n<html>\n\n</html>\n'
    5656"""
    5757import re
     58from django.conf import settings
    5859
    5960__all__ = ('Template','Context','compile_string')
    6061
     
    474475        if not isinstance(output, basestring):
    475476            output = str(output)
    476477        elif isinstance(output, unicode):
    477             output = output.encode('utf-8')
     478            output = output.encode(settings.DEFAULT_CHARSET)
    478479        return output
    479480
    480481def register_tag(token_command, callback_function):
  • django/middleware/common.py

     
    7878
    7979        # Use ETags, if requested
    8080        if settings.USE_ETAGS:
    81             etag = md5.new(response.get_content_as_string('utf-8')).hexdigest()
     81            etag = md5.new(response.get_content_as_string(settings.DEFAULT_CHARSET)).hexdigest()
    8282            if request.META.get('HTTP_IF_NONE_MATCH') == etag:
    8383                response = httpwrappers.HttpResponseNotModified()
    8484            else:
  • django/middleware/cache.py

     
    7676        Sets the cache, if needed.
    7777        """
    7878        if request._cache_middleware_set_cache:
    79             content = response.get_content_as_string('utf-8')
     79            content = response.get_content_as_string(settings.DEFAULT_CHARSET)
    8080            if request._cache_middleware_accepts_gzip:
    8181                content = compress_string(content)
    8282                response.content = content
  • django/views/decorators/cache.py

     
    11from django.core.cache import cache
    22from django.utils.httpwrappers import HttpResponseNotModified
    33from django.utils.text import compress_string
     4from django.conf import settings
    45import datetime, md5
    56
    67def cache_page(view_func, cache_timeout, key_prefix=''):
     
    2526        response = cache.get(cache_key, None)
    2627        if response is None:
    2728            response = view_func(request, *args, **kwargs)
    28             content = response.get_content_as_string('utf-8')
     29            content = response.get_content_as_string(settings.DEFAULT_CHARSET)
    2930            if accepts_gzip:
    3031                content = compress_string(content)
    3132                response.content = content
Back to Top