summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Holovaty <adrian@holovaty.com>2007-01-10 23:25:29 +0000
committerAdrian Holovaty <adrian@holovaty.com>2007-01-10 23:25:29 +0000
commitfa38ce720767c65847290a497599338a9659d9ca (patch)
tree57ce021ad59a579daeb4184aed8af482af885f62
parentf6a7002ef16b3c7ca62c0b44013d9274c0842094 (diff)
Fixed #3266 -- newforms: Made RadioSelect accept funky characters. Thanks for reporting, Honza Kral
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4304 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/newforms/widgets.py5
-rw-r--r--tests/regressiontests/forms/tests.py6
2 files changed, 8 insertions, 3 deletions
diff --git a/django/newforms/widgets.py b/django/newforms/widgets.py
index df8bb19c4f..4e4fc0c80b 100644
--- a/django/newforms/widgets.py
+++ b/django/newforms/widgets.py
@@ -172,14 +172,15 @@ class RadioInput(StrAndUnicode):
def __init__(self, name, value, attrs, choice, index):
self.name, self.value = name, value
self.attrs = attrs
- self.choice_value, self.choice_label = choice
+ self.choice_value = smart_unicode(choice[0])
+ self.choice_label = smart_unicode(choice[1])
self.index = index
def __unicode__(self):
return u'<label>%s %s</label>' % (self.tag(), self.choice_label)
def is_checked(self):
- return self.value == smart_unicode(self.choice_value)
+ return self.value == self.choice_value
def tag(self):
if self.attrs.has_key('id'):
diff --git a/tests/regressiontests/forms/tests.py b/tests/regressiontests/forms/tests.py
index ad77d5795e..d185f1ceb8 100644
--- a/tests/regressiontests/forms/tests.py
+++ b/tests/regressiontests/forms/tests.py
@@ -527,12 +527,16 @@ True
>>> r[1].is_checked()
False
>>> r[1].name, r[1].value, r[1].choice_value, r[1].choice_label
-('beatle', u'J', 'P', 'Paul')
+('beatle', u'J', u'P', u'Paul')
>>> r[10]
Traceback (most recent call last):
...
IndexError: list index out of range
+>>> w = RadioSelect()
+>>> unicode(w.render('email', 'ŠĐĆŽćžšđ', choices=[('ŠĐĆŽćžšđ', 'ŠĐabcĆŽćžšđ'), ('ćžšđ', 'abcćžšđ')]))
+u'<ul>\n<li><label><input checked="checked" type="radio" name="email" value="\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111" /> \u0160\u0110abc\u0106\u017d\u0107\u017e\u0161\u0111</label></li>\n<li><label><input type="radio" name="email" value="\u0107\u017e\u0161\u0111" /> abc\u0107\u017e\u0161\u0111</label></li>\n</ul>'
+
# CheckboxSelectMultiple Widget ###############################################
>>> w = CheckboxSelectMultiple()