diff options
| author | Adrian Holovaty <adrian@holovaty.com> | 2005-10-06 02:27:08 +0000 |
|---|---|---|
| committer | Adrian Holovaty <adrian@holovaty.com> | 2005-10-06 02:27:08 +0000 |
| commit | ab9aacd4db5d1e69ff2c78bae69fcabe5252d395 (patch) | |
| tree | d09b59dfbf42b700223f474937fb27fd9d02ea2a /django/core | |
| parent | 261ab166cef09497ab2204442e74246758341135 (diff) | |
Fixed #333 and #440 -- Split DEFAULT_MIME_TYPE setting into DEFAULT_CONTENT_TYPE and DEFAULT_CHARSET. Thanks, Maniac.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@786 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/core')
| -rw-r--r-- | django/core/formfields.py | 7 | ||||
| -rw-r--r-- | django/core/handlers/modpython.py | 5 | ||||
| -rw-r--r-- | django/core/handlers/wsgi.py | 2 | ||||
| -rw-r--r-- | django/core/template.py | 3 |
4 files changed, 10 insertions, 7 deletions
diff --git a/django/core/formfields.py b/django/core/formfields.py index 7587b67170..76721ba5c6 100644 --- a/django/core/formfields.py +++ b/django/core/formfields.py @@ -1,6 +1,7 @@ from django.core import validators from django.core.exceptions import PermissionDenied from django.utils.html import escape +from django.conf.settings import DEFAULT_CHARSET FORM_FIELD_ID_PREFIX = 'id_' @@ -221,7 +222,7 @@ class TextField(FormField): self.validator_list = [self.isValidLength, self.hasNoNewlines] + validator_list def isValidLength(self, data, form): - if data and self.maxlength and len(data) > self.maxlength: + if data and self.maxlength and len(data.decode(DEFAULT_CHARSET)) > self.maxlength: raise validators.ValidationError, "Ensure your text is less than %s characters." % self.maxlength def hasNoNewlines(self, data, form): @@ -235,7 +236,7 @@ class TextField(FormField): if self.maxlength: maxlength = 'maxlength="%s" ' % self.maxlength if isinstance(data, unicode): - data = data.encode('utf-8') + data = data.encode(DEFAULT_CHARSET) return '<input type="text" id="%s" class="v%s%s" name="%s" size="%s" value="%s" %s/>' % \ (FORM_FIELD_ID_PREFIX + self.field_name, self.__class__.__name__, self.is_required and ' required' or '', self.field_name, self.length, escape(data), maxlength) @@ -264,7 +265,7 @@ class LargeTextField(TextField): if data is None: data = '' if isinstance(data, unicode): - data = data.encode('utf-8') + data = data.encode(DEFAULT_CHARSET) return '<textarea id="%s" class="v%s%s" name="%s" rows="%s" cols="%s">%s</textarea>' % \ (FORM_FIELD_ID_PREFIX + self.field_name, self.__class__.__name__, self.is_required and ' required' or '', self.field_name, self.rows, self.cols, escape(data)) diff --git a/django/core/handlers/modpython.py b/django/core/handlers/modpython.py index 623db959b2..e52879065f 100644 --- a/django/core/handlers/modpython.py +++ b/django/core/handlers/modpython.py @@ -150,14 +150,15 @@ class ModPythonHandler(BaseHandler): def populate_apache_request(http_response, mod_python_req): "Populates the mod_python request object with an HttpResponse" - mod_python_req.content_type = http_response['Content-Type'] or httpwrappers.DEFAULT_MIME_TYPE + from django.conf import settings + mod_python_req.content_type = http_response['Content-Type'] for key, value in http_response.headers.items(): if key != 'Content-Type': mod_python_req.headers_out[key] = value for c in http_response.cookies.values(): mod_python_req.headers_out.add('Set-Cookie', c.output(header='')) mod_python_req.status = http_response.status_code - mod_python_req.write(http_response.get_content_as_string('utf-8')) + mod_python_req.write(http_response.get_content_as_string(settings.DEFAULT_CHARSET)) def handler(req): # mod_python hooks into this function. diff --git a/django/core/handlers/wsgi.py b/django/core/handlers/wsgi.py index 40ea9fb902..2d34c64821 100644 --- a/django/core/handlers/wsgi.py +++ b/django/core/handlers/wsgi.py @@ -167,6 +167,6 @@ class WSGIHandler(BaseHandler): response_headers = response.headers.items() for c in response.cookies.values(): response_headers.append(('Set-Cookie', c.output(header=''))) - output = [response.get_content_as_string('utf-8')] + output = [response.get_content_as_string(settings.DEFAULT_CHARSET)] start_response(status, response_headers) return output diff --git a/django/core/template.py b/django/core/template.py index 35b557bbfb..71a8e621c8 100644 --- a/django/core/template.py +++ b/django/core/template.py @@ -55,6 +55,7 @@ times with multiple contexts) '\n<html>\n\n</html>\n' """ import re +from django.conf.settings import DEFAULT_CHARSET __all__ = ('Template','Context','compile_string') @@ -474,7 +475,7 @@ class VariableNode(Node): if not isinstance(output, basestring): output = str(output) elif isinstance(output, unicode): - output = output.encode('utf-8') + output = output.encode(DEFAULT_CHARSET) return output def register_tag(token_command, callback_function): |
