Opened 15 years ago
Last modified 6 years ago
#12892 closed
UnicodeEncodeError in contrib.admindocs with non-EN locale — at Initial Version
Reported by: | Beuc | Owned by: | nobody |
---|---|---|---|
Component: | Internationalization | Version: | 1.1 |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Accepted | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I have this in my urls.py:
(r'admin/doc/', include('django.contrib.admindocs.urls')),
and this in my settings.py:
LANGUAGE_CODE = 'fr'
# (same with 'fr-fr')
If I go to http://localhost:8000/admin/doc/models/auth.user/
I get:
Unicode error hint
The string that could not be encoded/decoded was: <modèle :u
Environment:
Request Method: GET
Request URL: http://localhost:8000/admin/doc/models/auth.user/
Django Version: 1.1.1
Python Version: 2.5.5
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.admin',
'django.contrib.admindocs',
'test421']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'test421.middleware.requirelogin.RequireLoginMiddleware')
Traceback:
File "/usr/lib/pymodules/python2.5/django/core/handlers/base.py" in get_response
- response = callback(request, *callback_args, callback_kwargs)
File "/usr/lib/pymodules/python2.5/django/contrib/admin/views/decorators.py" in _checklogin
- return view_func(request, *args, kwargs)
File "/usr/lib/pymodules/python2.5/django/contrib/admindocs/views.py" in model_detail
- 'verbose': utils.parse_rst(_("all %s") % verbose , 'model', _('model:') + opts.module_name),
File "/usr/lib/pymodules/python2.5/django/contrib/admindocs/utils.py" in parse_rst
- settings_overrides=overrides)
File "/usr/lib/pymodules/python2.5/docutils/core.py" in publish_parts
- enable_exit_status=enable_exit_status)
File "/usr/lib/pymodules/python2.5/docutils/core.py" in publish_programmatically
- output = pub.publish(enable_exit_status=enable_exit_status)
File "/usr/lib/pymodules/python2.5/docutils/core.py" in publish
- self.settings)
File "/usr/lib/pymodules/python2.5/docutils/readers/init.py" in read
- self.parse()
File "/usr/lib/pymodules/python2.5/docutils/readers/init.py" in parse
- self.document = document = self.new_document()
File "/usr/lib/pymodules/python2.5/docutils/readers/init.py" in new_document
- document = utils.new_document(self.source.source_path, self.settings)
File "/usr/lib/pymodules/python2.5/docutils/utils.py" in new_document
- source_path = decode_path(source_path)
File "/usr/lib/pymodules/python2.5/docutils/utils.py" in decode_path
- path = path.decode(sys.getfilesystemencoding(), 'strict')
File "/usr/lib/python2.5/encodings/utf_8.py" in decode
- return codecs.utf_8_decode(input, errors, True)
Exception Type: UnicodeEncodeError at /admin/doc/models/auth.user/
Exception Value: 'ascii' codec can't encode character u'\xe8' in position 4: ordinal not in range(128)
If I switch to:
LANGUAGE_CODE='en-US'
the problem disappears.
It looks like the translated string is not properly declared as Unicode.