﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
3597	UnicodeDecode error when ChoiceField(w=RadioSelect) has Unicode choices	Georgi Stanojevski <glisha gmail com>	Malcolm Tredinnick	"When I have a form like this, note the choices with unicode data I get an UnicodeDecodeError.

I attached a patch which just replaces the __str__ method with __unicode__ for RadioSelect widgets in django/newforms/forms.py +232.

It seems to work.

{{{
#!python
class aform(forms.Form):

    def __init__(self, *args, **kwargs):
        super(aform, self).__init__(*args, **kwargs)
        self.fields['aradio'].choices = [('1',u'јуникод'),('2','latin')]

    aradio = forms.ChoiceField(choices=(), widget=RadioSelect())

  f = aform()
  f.as_ul()
}}}

I get an UnicodeDecodeError.

{{{
#!python
exceptions.UnicodeDecodeError                        Traceback (most recent call last)

/home/webstrana/django/kajmakot/<ipython console>

/home/webstrana/django/django_src/django/newforms/forms.py in as_ul(self)
    146     def as_ul(self):
    147         ""Returns this form rendered as HTML <li>s -- excluding the <ul></ul>.""
--> 148         return self._html_output(u'<li>%(errors)s%(label)s %(field)s%(help_text)s</li>', u'<li>%s</li>', '</li>', u' %s', False)
    149
    150     def as_p(self):

/home/webstrana/django/django_src/django/newforms/forms.py in _html_output(self, normal_row, error_row, row_ender, help_text_html, errors_on_separate_row)
    127                 else:
    128                     help_text = u''
--> 129                 output.append(normal_row % {'errors': bf_errors, 'label': label, 'field': unicode(bf), 'help_text': help_text})
    130         if top_errors:
    131             output.insert(0, error_row % top_errors)

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 80: ordinal not in range(128)

}}}"		closed	Forms	dev		fixed	UnicodeDecodeError RadioSelect		Accepted	1	0	0	0	0	0
