Code

Opened 4 years ago

Closed 4 years ago

#12892 closed (fixed)

UnicodeEncodeError in contrib.admindocs with non-EN locale

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: UI/UX:

Description (last modified by ramiro)

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
  92.                 response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/pymodules/python2.5/django/contrib/admin/views/decorators.py" in _checklogin
  33.             return view_func(request, *args, **kwargs)
File "/usr/lib/pymodules/python2.5/django/contrib/admindocs/views.py" in model_detail
  228.             '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
  70.                 settings_overrides=overrides)
File "/usr/lib/pymodules/python2.5/docutils/core.py" in publish_parts
  432.         enable_exit_status=enable_exit_status)
File "/usr/lib/pymodules/python2.5/docutils/core.py" in publish_programmatically
  646.     output = pub.publish(enable_exit_status=enable_exit_status)
File "/usr/lib/pymodules/python2.5/docutils/core.py" in publish
  203.                                              self.settings)
File "/usr/lib/pymodules/python2.5/docutils/readers/__init__.py" in read
  69.         self.parse()
File "/usr/lib/pymodules/python2.5/docutils/readers/__init__.py" in parse
  74.         self.document = document = self.new_document()
File "/usr/lib/pymodules/python2.5/docutils/readers/__init__.py" in new_document
  80.         document = utils.new_document(self.source.source_path, self.settings)
File "/usr/lib/pymodules/python2.5/docutils/utils.py" in new_document
  426.     source_path = decode_path(source_path)
File "/usr/lib/pymodules/python2.5/docutils/utils.py" in decode_path
  340.         path = path.decode(sys.getfilesystemencoding(), 'strict')
File "/usr/lib/python2.5/encodings/utf_8.py" in decode
  16.     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.

Attachments (0)

Change History (4)

comment:1 Changed 4 years ago by Beuc

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset

This might be related to docutils, because:

  • under Debian Lenny (docutils 0.5-2) there's no problem
  • under Debian Squeeze (docutils 0.6-3) there's the bug

comment:2 Changed 4 years ago by ramiro

  • Description modified (diff)

Re-formated description. Please use preview (and WikiFormatting for complex descriptions) as suggested in the notes displayed before you open a ticket.

comment:3 Changed 4 years ago by russellm

  • Component changed from django.contrib.admin to Internationalization
  • Triage Stage changed from Unreviewed to Accepted

comment:4 Changed 4 years ago by jezdez

  • Resolution set to fixed
  • Status changed from new to closed

(In [13192]) Fixed #12892 - Fixed unicode related bug in a utility function of the admindocs app that prevented it to be used in non-English environments together with certain versions of docutils.

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.